For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
数据库的架构开发在大多数软件开发项目中都是会经常用到的,而本文我们就通过案例分析来简单了解一下,数据库索引分类与创建需求分析。
1.MySQL索引的分类
在创建索引之前了解一下MySQL有哪些索引,然后我们才能选择合适的索引。
常见的索引有,普通索引、主键索引、联合索引、全文索引等。
普通索引
普通索引就是基本的索引,没有任何限制。
主键索引
主键索引是一种特殊的索引,并且一张表只有一个主键,不允许为null。
联合索引
联合索引是同时在多个字段上创建索引,查询效率更高。
全文索引
全文索引主要用来匹配字符串文本中关键字。
当需要字符串中是否包含关键字的时候,我们一般用like,如果是以%开头的时候,则无法用到索引,这时候就可以使用全文索引了。
2.哪些字段适合创建索引?
我总结了有以下几条:
2.1频繁查询的字段适合创建索引
一张表的字段总会有冷热之分,很明显那些频繁使用的字段更适合为它创建索引。
2.2在where和on条件出现的字段优先创建索引
为什么不是在select后面出现的字段优先创建索引?
因为查询SQL会先匹配on和where条件的字段,具体的匹配顺序是这样的:
from>on>join>where>groupby>having>select>distinct>orderby>limit
2.3区分度高的字段适合创建索引
比如对于一张用户表来说,生日比性别的区分度更高,更适合创建索引。
可以使用下面的方式手动统计一下,每个字段的区分度,值越大,区分度越高
2.4有序的字段适合创建索引
有序的字段在插入数据库的过程中,仍能保持B+树的索引结构,不需要频繁更新索引文件,性能更好。
3.哪些字段不合适创建索引?
说完哪些字段适合创建索引,就有不适合创建索引的的字段。
3.1区分度低的字段不适合创建索引。
刚才说了用户表中性别的区分度较低,不如生日字段适合创建索引。
3.2频繁更新的字段不适合创建索引
更新字段的过程中,需要维护B+树结构,会频繁更新索引文件,降低SQL性能。
3.3过长的字段不适合创建索引
过长的字段会占用更多的空间,不适合创建索引。
3.4无序的字段不适合创建索引
无序的字段在插入数据库的过程中,为了维护B+树索引结构,需要频繁更新索引文件,性能较差。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。