2、使用联合索引尽量覆盖多的条件
这是说在一个慢sql里假如有五个where , 一个 order by,那么我们的联合索引尽量覆盖到这五个查询条件,如果有必要,order by 也覆盖上。
3、小基数字段不需要索引
这个意思是 , 如果一张表里某个字段的值只有那么几个,那么你针对这个字段建立的索引其实没什么意义,比如说,一个性别字段就两种结果 , 你建了索引,排序也没什么意思(也就是索引里把男女给分开了)
所以说,索引尽量选择基数大的数据去建立 , 能最大化地利用索引
4、长字符串可以使用前缀索引
我们建立索引的字段尽量选择字段类型较小的,比如一个varchar(20)和varchar(256)的,我们在20的上面建立的索引和在256上就有明显的差距(字符串那么长排序也不好排呀,唉) 。
当然,如果一定是要对varchar(256)建立索引,我们可以选择里面的前20个字符放在索引树里(这里的20不绝对 , 选择能尽量分辨数据的最小字符字段设计),类似这样KEY index(name(20),age,job),索引只会对name的前20个字符进行搜索,但前缀索引无法适用于order by 和 group by 。
5、对排序字段设计索引的优先级低
如果一个SQL里我们出现了范围查找,后边又跟着一个排序字段,那么我们优先给范围查找的字段设置索引 , 而不是优先排序 。
6、如果出现慢SQL,可以设计一个只针对该条SQL的联合索引 。
不过慢SQL的优化,需要一步步去进行分析,可以先用explain查看SQL语句的分析结果,再针对结果去做相应的改进 。explain的东西我们下次再讲 。
PS:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记 , 执行查询会返回执行计划的信息,而不是 执行这条SQL 。
MySQL单表索引设置1、索引并不是越多越好mysql怎么设置索引,要根据查询有针对性mysql怎么设置索引的创建mysql怎么设置索引,考虑在WHERE和ORDER BY命令上涉及的列建立索引 , 可根据EXPLAIN来查看是否用mysql怎么设置索引了索引还是全表扫描
2、应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描
3、值分布很稀少的字段不适合建索引,例如”性别”这种只有两三个值的字段
4、字符字段只建前缀索引
5、字符字段最好不要做主键
6、不用外键,由程序保证约束
7、尽量不用UNIQUE,由程序保证约束
8、使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引
mysql怎么设置索引的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于mysql设置索引长度、mysql怎么设置索引的信息别忘了在本站进行查找喔 。
推荐阅读
- 如何躲开营销号,如何避免营销号
- 如何玩好企业新媒体运营,企业如何玩转新媒体营销
- 什么cpu支持vtd,什么cpu支持6000频率内存
- fg直播素材大全,主播直播素材
- java树形菜单递归代码 java树形结构递归实现
- flutter发展,flutter基于什么语言
- 虚拟机加速游戏时间限制,虚拟机如何加速游戏
- 冬季运动幼儿体育游戏教案,幼儿园冬季体育游戏教案
- php返回游戏数据 php返回对象