MySQL索引到底怎么分类的?

看到一些资料:

mysql的索引分为单列索引(主键索引,唯一索引,普通索引)和组合索引.

单列索引:一个索引只包含一个列,一个表可以有多个单列索引.

组合索引:一个组合索引包含两个或两个以上的列,

还有我们经常说的全文索引属于哪一种的???

还有就是我试着建一个组合索引,name和age字段组合:

ALTER TABLE `user` ADD INDEX index_titme_time (name,age)

成功之后我再Navicat看如下图:
图片描述

请问这个时候他到底是普通索引还是组合索引???

阅读 2.3k
1 个回答

首先回答后面的问题,index_titme_time是一个组合索引,也是一个普通索引

一个索引是主键索引、唯一索引还是普通索引与这个索引是单列还是组合并没有联系。一个索引如果只包含一个列,那它就是单列索引,否则就是组合索引。至于它是主键还是唯一索引还是普通索引,则是需要在创建语句中指定的

ALTER TABLE `user` ADD INDEX index_titme_time (name,age); /*添加一个复合普通索引*/
ALTER TABLE `user` ADD UNIQUE INDEX index_titme_time (name,age); /*添加一个复合唯一索引*/
ALTER TABLE `user` ADD PRIMARY KEY index_titme_time (name,age); /*添加一个复合主键*/

一张表只能有一个主键索引


全文索引是一种特殊的索引, 可以实现类似搜索引擎的功能。但是真的需要全文搜索的话,还是建议使用搜索引擎而不是全文索引。
除了普通索引(index)、唯一索引(unique)、主键索引(primary)和全文索引(fulltext)外,mysql5.7还支持另外一种索引类型——空间索引(spatial),可用于索引位置信息
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题