数据库索引应用都有哪些类型

是的,这就是两个指数。
聚集索引就像一个目录,允许您直接查询数据。
非聚集索引就像一本索引书,查询数据速度很慢。

聚集索引:记录的顺序与索引相同,速度快,但只能有一张表。

非聚集索引:记录和索引的顺序不同,速度慢,但可以有多个表。

总结:应该用它来查需求,快速搜索集群,多字段搜索非集群。
你看看哪一个适合你。

什么是数据库索引?索引有哪些种类?

说实话,索引如果用得好的话可以为你省去很多麻烦,但用不好的话就不行了。
这很容易导致错误。
接手旧项目时;数据库查询速度慢得像爬行一样。
我查看了一下,发现表上有很多索引。
结果,当调查情况发生变化时,一切都毫无结果。

以普通索引为例。
我以前有一个订单表,其中stu_id字段是学生ID,金额是几千万。
当没有标签时,您需要等待半分钟才能凭学生证核对订单。
添加自定义标签后。
几秒钟后回来直播。
有趣的是,这个制作起来非常简单;只需使用 ALTER TABLE 命令 KEY (stu_id);但当时我们的技术负责人老王坚持要在stu_id上建立唯一索引。
当时我不明白为什么,但后来意识到我必须阻止有人随意填写重复的订单号。

唯一索引确实很美妙,但是必须使用。
例如,在学籍管理系统中;学生人数列必须是唯一的。
通过使用 UNIQUE 索引可以直接保证数据不重复。
记得有一个实习生在考试时不小心输入了两条相同学号的信息,立即报错。
他说本来应该安装成功的,结果安装失败了。
我自己没有做过这方面的全文索引,但我知道我们公司的信息系统很好用。
文章标题和内容全文索引;自动匹配用户搜索关键词;它比普通的模糊问题有效得多。
但需要注意的是,全文索引仅适用于MyISAM引擎。
InnoDB现在已经支持这个了,但是功能还是不够。

多列索引是最好的选择。
我之前在班级表上创建了一个多列索引(id、name、score)。
起初我以为它对每个查询都有效,但是我只在查询“WHERE id = 1 01 ”时使用索引,而在查询“WHERE name = '张三'”时,它根本不起作用。
老王教我记住最左边的前缀原则,就像给三个门牌号码贴上标签一样。
您只需按第一个门牌号搜索,后续标签就是您的根本不在乎。
所以现在,在设计索引之前,首先要做的就是模拟各种查询语句,看看索引是否可以使用。

我很少接触空间索引。
我们的项目没有地理信息,但我知道开发GIS系统的人必须使用它。
我曾经看过一个开源地图项目。
其中的点所有线面数据都依赖于SPATIAL索引。
通过绘制和拖动地图来查询非常快。
但是,创建此类索引时要小心。
该字段必须设置为NOT NULL,并且只能被MyISAM存储引擎识别。
如果您当前使用InnoDB;必须添加空间约束。

总的来说,索引就像为数据库表的每个字段插入一个导航系统。
一个常见的索引是基本导航;一个独特的指标是限速拍照(防止交通违规);全文索引、智能语音助手(搜索关键词);多列索引允许连续导航(步行);空间索引是GPS定位。
使用时一定要看到场景。
不要盲目添加索引。
例如,经常更新字段不应被标记。
如果不是,每次更新都得重新构建索引,速度变慢。
磁盘空间和查询效率必须平衡。
有时索引太多,表就会变大,查询时就必须使用排序。
最终速度可能还不如不加标签。