欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Mysql索引及语句规约

Mysql索引及语句规约

2024/10/25 0:31:59 来源:https://blog.csdn.net/qq_33816292/article/details/142952713  浏览:    关键词:Mysql索引及语句规约

MySQL数据库
1.索引规约
1.【强制】业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一系引。
说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应 用层 做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生,
2.【强制】超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致:多表关联查询时,保证被关联 的字段需要有索引。
说明:即使双表 join 也要注意表索引、SQL 性能。
3.【强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区 分度决定索引长度。
说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,可以使 用 count(distinct left(列名,索引长度))/ count(*)的区分度来确定。
4.【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决,4.说明:索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。

5.【推荐】如果有 order by 的场景,请注意利用索引的有序性。order by 最后的字段是组合索引的一部 分,并5.且放在索引组合顺序的最后,避免出现 filesort 的情况,影响查询性能。
正例:wherea=?andb=?orderbyc;索引:abc
反例:索引如果存在范围查询,那么索引有序性无法利用,如:WHEREa>10 ORDER BY b;索引ab无法排序。

6.【推荐】利用覆盖索引来进行查询

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com