索引的几种类型(索引分为哪几种类型?它们的主要区别是什么?)

lxf2023-08-11 07:40:01

MySQL索引(因为大部分没有刻意区分搜索引擎)

索引:最基本的索引,没有任何限制

ALTER TABLE ` TABLE _ name ` ADD INDEX INDEX _ name(` column `)

唯一索引:类似于“普通索引”,不同的是索引列的值必须是唯一的,但允许空的值。

ALTER TABLE ` TABLE _ name ` ADD UNIQUE(` column `)

注意:创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据重复。可以有多个唯一索引,但是索引列的值必须是唯一的,并且索引列的值允许有空值。如果您可以确定某个数据列只包含不同的值,则应该在为此数据列创建索引时使用关键字UNIQUE,并将其定义为唯一索引。

主键:是特殊的唯一索引,不允许空的值。

ALTER TABLE ` TABLE _ name ` ADD PRIMARY KEY(` column `)

FULLTEXT(全文索引):它只能用于MyISAM表。对于大数据,生成一个全文索引空需要很长时间。

ALTER TABLE ` TABLE _ name ` ADD full text(` column `)

组合索引:为了提高mysql的效率,可以建立一个组合索引,遵循“最左前缀”的原则。

ALTER TABLE ` TABLE _ name ` ADD INDEX INDEX _ name(` column 1 `,` column2 `,` column3 `)

使用索引时应该知道的事情:

1.索引虽然大大提高了查询速度,但是会减慢更新表的速度,比如插入、更新、删除表。因为在更新表的时候,MySQL不仅要保存数据,还要保存索引文件。

2.索引会占用disk 空之间的索引文件。一般来说,这个问题不太严重,但是如果在一个大表上创建多个组合索引,索引文件会迅速膨胀。

3.索引只是提高效率的一个因素。如果你的MySQL有大量的表,你需要花时间去研究和建立最好的索引或者优化查询语句。

构建索引后,您应该保护索引的良好执行:

请参考“保护索引时需要注意的问题”一文。

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!