
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了MySQL数据库设计的一些基础知识等内容,而本文我们就通过案例分析来了解一下,数据库索引设计都有哪些设计原则。
1.索引未建,代码先行
通常来说,考虑好表中每个字段应该使用什么类型和长度,建完表需要做的事情不是马上建立索引,而是先把相关主体业务开发完毕,然后把涉及该表的SQL都拿出来分析之后再建立索引。
2.联合索引尽量覆盖条件
尽量少建立单值索引(索引除外),应当设计一个或者两三个联合索引,让每一个联合索引都尽量去包含SQL语句中的where、orderby、groupby的字段,同时确保联合索引的字段顺序尽量满足SQL查询的左前缀原则。
3.不要在小基数字段上建立索引
索引基数是指这个字段在表里总共有多少个不同的值,比如一张表总共100万行记录,其中有个性别字段,性别一共有三个值:男、女、保密,那么该字段的基数就是3。
如果对这种小基数字段建立索引的话,因为索引树中只有男、女、保密三个值,根本没法进行快速的二分查找,同时还需要回表查询,还不如全表扫描嘞。
一般建立索引,尽量使用那些基数比较大的字段,那么才能发挥出B+树快速二分查找的优势来。
4.where与orderby冲突时优先where
在where和orderby出现索引设计冲突时,是优先针对where去设计索引?还是优先针对orderby设计索引?
通常情况下都是优先针对where来设计索引,因为通常情况下都是先where条件使用索引快速筛选出来符合条件的数据,然后对进行筛选出来的数据进行排序和分组,而where条件快速筛选出来的的数据往往不会很多。
5.对慢查询SQL进行优化
对生产实际运行过程中,或者测试环境大数据量测试过程中发现的慢查询SQL进行特定的索引优化、代码优化等策略。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。