mysql建索引的几大原则

1.选择单个索引。
例如,students表中的中学ID就是一个唯一字段。
建立该字段的唯一索引可以快速确定学生信息。
如果使用名称,很可能是同名,这样会减慢查询速度。
2.创建经常需要排序、分组和联合操作的字段列表通常需要诸如ORDER、GROUPBY、DISTINCT、JOIN等操作。
如果列出来,就可以有效避免这样的操作。
3.创建查询条件中常用字段的列表。
如果某个字段经常用于查询条件,则该字段的查询速度会影响整个表的查询速度。
因此,对这些字段建立索引可以提高整个表的查询速度。
4.限制列表的数量。
每个索引都需要磁盘空间。
当表发生变化时,很难更新和更新列表。
多个索引需要更新表,非常耗时。
5.尝试使用包含少量数据的列表。
如果值列表太长,则会影响查询速度。
例如,对CHAR(100)类型字段进行全文搜索肯定会比CHAR(10)类型字段花费更多时间。
6.尝试使用介词列出清单。
例如,全文搜索文本和类型字段BLOG将是多余的。
如果只恢复该字段的前几个字符,则可以提高检索速度。
7.删除不再使用或很少使用的列表。
当表中的数据大量更新或者数据的使用方式发生改变后,原有的一些索引就不再需要了。
数据库服务器应该定期识别这些索引并删除它们,以减少索引更新对操作的影响。
8、左介词匹配原则是最重要的原则。
mysql会一直向右匹配,直到找到一系列查询(>、<、Between、like)并匹配。
例如,a1=""and=""b="2"c="">3andd=4如果集合(a,b,c,d)是一个数组,则数组中不使用d。
如果您创建一个列表(a、b、d、c),它将进行调整以适应。
9.=并且可能出现故障。
例如a=1andb=2andc=3可以以任意顺序(a,b,c)创建索引,MySQL查询优化器会帮你优化成索引可以识别的形式。
10.尽量选择区分度高的栏目。
区分公式为count(distinctcol)/count(*),其中不重复的字段比例字段类型可以很大。
数据前的差值为0,那么有人可能会问,这个理论有经验价值吗?不同的用例使这个值变得困难。
一般我们要求需要合并的场数在0.1以上,即平均每次扫描10帧。
例如,不能使用_unixtime(create_time)='2014-05-29'中的列表。
原因很简单,对于所有元素。
因此,该语句应写为create_time=unix_timestamp('2014-05-29');比如表中已经有a的索引,现在要添加索引(a,b),那么只需要改变第一个索引就可以了。
它更快基本的规则是定了,但是不能设定上面的规则。
读者应该在以后的学习中锻炼,从应用的实际情况来判断,选择最合适的索引方法。

mysql索引建立索引(a,b,c)书上说a,b,ca,ba这三种情况才使用索引

这本书里写的不一定是正确的。
书上规定只能用a,b,a,b,c来建立索引,遵循最左前缀原则。
并且c也可以用于该组合索引。
我在网上看过很多人的答案,大部分都是根据书上阐述的原理,但往往实时的结果超出了我们的预期。