当前位置:网站首页>mysql索引

mysql索引

2022-06-13 02:43:00 Cold Snowflakes

约束:保证数据完整性。
索引:快速定位特定数据,提高查询效率。
实际上两个不同的概念,索引相当于在字典中建立了一个目录。


在 MySQL 中,通常有两种方式访问数据库表的行数据:
1)顺序访问
顺序访问是全表扫描,从头到尾逐行遍历,直到找到符合条件的目标数据。

在几千万条数据中查找少量的数据时,使用顺序访问方式将会遍历所有的数据,花费大量的时间,显然影响数据库的处理性能。
2)索引访问
索引访问是通过遍历索引来直接访问表中记录行。

前提是对表建立一个索引,在列上创建了索引之后,查找数据时直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。索引存储了指定列数据值的指针,根据指定的排序顺序对这些指针排序。

例如,在学生表 tb_students 中,如果基于 student_id 列建立了索引,系统就建立了一张索引列到实际记录的映射表。当用户需要查找 where student_id = 12022 的数据的时候,系统先在 student_id 索引上找到该记录,然后通过映射表直接找到数据行,并且返回该行数据。就像字典里的目录一样。

因为扫描索引的速度一般远远大于扫描实际数据行的速度,所以采用索引的方式可以大大提高数据库的工作效率。


索引

索引是定义在列上的。
如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。
普通索引
唯一索引:该列上的值不能重复,允许有空值。
主键索引:不允许有空值。

创建主键约束时,mysql 默认会自动创建一个索引
若要实现主键的值不重复,在每次插入新记录时都需要检索数据,所以为了提高检索速度,同时对主键创建索引。
创建唯一约束时,mysql 默认会自动创建一个唯一索引
跟上面的道理一样,通过唯一索引实现唯一约束

mysql索引
mysql中的约束和索引
MySQL 索引添加以及优化

原网站

版权声明
本文为[Cold Snowflakes]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_53318060/article/details/125252445