下面一起来了解下Mysql基础设计及优化简单思路,相信大家看完肯定会受益匪浅,文字在精不在多,希望Mysql基础设计及优化简单思路这篇短内容是你想要的。
1、定长和不定长要区分开
2、不常用的列和常用的列分开存
3、增加冗余,反范式化
4、btree索引,就是用树形结构存储在磁盘上,其中操作是用2分发,找一个中间点,然后把大比这个大的分在一边,小的放在一边,然后当你查询的时候,从数字头开始,大小分开找,这个适合区间查找,不适合一个一个找
5、hash索引,就是当你存储在硬盘的数据,先给你一个地址,然后你下次来找的时候直接用那个地址找到那个值,这个适合一个值的查找,不适合区间查询,比如where id=1这种
6、(1)limit 的优化,能用业务逻辑解决的就用业务逻辑解决(比如百度的搜索只是显示76页)
(2)往索引上靠,比如id>1100这种,你用到了id的hash主键索引(默认)
(3)inner join
7、数据库的索引都是以二叉树进行储存的,聚簇索引其实就是树的节点下面包含了这个节点的其他数据项,但是非聚簇索引只是一个标记,然后还要回行到磁盘去找到相应的数据项值,还要聚簇索引的二级索引只是一种引用,也就是二级索引下面存储的是一级索引的id,然后二级索引通过id去树上找到相应的数据项。
非聚簇索引比如myisam存储引擎,索引和数据是存在不同的地方。找找到索引然后再找到数据.
聚簇索引就是那个存储数据的节点,及包含索引,然后在索引下面还存有它相应的其他数据---innodb
8、索引会占据很大的磁盘空间,然后数据的变更也会操作索引
9、组合索引的核心思想是左半边原则,当你的最后一个条件产生like这种之后就会导致后面的用不到
select * from test where id = 1 and name = "aa" and text like "%sss" and desc = "1";
就会导致你后面的desc就用不到了索引
10、hash的思想是跳出时间和空间复杂度,但是它需要一个散列度好的函数,空隙正好,然后还不能冲突
11、innodb即使你插入的数据是乱序的,但是你查出来之后还是整理好的顺序,因为它可以按照数的索引依次返回数据,这也是聚蔟索引的一个优势
固态硬盘支持随机读取,而不用像传统磁盘那样按照顺序转圈的读取
看完Mysql基础设计及优化简单思路这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。