关于MySQL索引底层原理,可以参考我之前的博文:https://blog.csdn.net/weixin_36372879/article/details/90668838
主键索引(Primary, pk_)
必须为主键字段创建一个索引,这个Mysql索引就是所谓的“主索引”。
一般情况下,数据库的主键为依次递增的uuid。这样可以在插入的时候,加快建立索引的速度。
普通索引(Normal, idx_)
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。
根据MySQL引擎(InnoDB或者MyISAM )不同,非主键索引的工作方式不同。
- InnoDB是聚集索引,非主键索引存放的是主键索引的值
- MyISAM是非聚集索引,非主键索引存放的是数据的地址
唯一索引(Unique, uk_)
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是