mysql索引基础详解


本文摘自PHP中文网,作者WJ,侵删。

MySQL――索引基础

本篇文章中用于测试索引创建的user表的结构如下:

1.png

什么是索引

索引(在 MySQL 中也叫“键key”)是存储引擎快速找到记录的一种数据结构

――《高性能MySQL》

我们需要知道索引其实是一种数据结构,其功能是帮助我们快速匹配查找到需要的数据行,是数据库性能优化最常用的工具之一。其作用相当于超市里的导购员、书本里的目录。

索引类型

可以使用SHOW INDEX FROM table_name;查看索引详情

31.png

1、主键索引 PRIMARY KEY

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。

注意:一个表只能有一个主键

1.png

2、唯一索引 UNIQUE

唯一索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

可以通过ALTER TABLE table_name ADD UNIQUE (column);创建唯一索引

2.png

3.png

可以通过ALTER TABLE table_name ADD UNIQUE (column1,column2);创建唯一组合索引

4.png

5.png

3、普通索引 INDEX

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

可以通过ALTER TABLE table_name ADD INDEX index_name (column);创建普通索引

6.png

7.png

4、组合索引 INDEX

组合索引,即一个索引包含多个列。多用于避免回表查询。

可以通过ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);创建组合索引

8.png

9.png

5、全文索引 FULLTEXT

全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。

可以通过ALTER TABLE table_name ADD FULLTEXT (column);创建全文索引

10.png

11.png

索引一经创建不能修改,如果要修改索引,只能删除重建。可以使用DROP INDEX index_name ON table_name;删除索引。

索引设计的原则

1、适合索引的列是出现在where子句中的列,或者连接子句中指定的列

2、基数较小的类,索引效果较差,没有必要在此列建立索引

3、使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间

4、不要过度索引。索引需要额外的磁盘空间,并降低写操作的性能。在修改表内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以只保持需要的索引有利于查询即可。

相关参考php中文网

以上就是mysql索引基础详解的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql索引是什么及怎么使用的?整理的很详细

PHPstorm如何通过ssh连接mysql数据库

你需要掌握的13个mysql索引知识点

PHP为什么使用redis

数据库索引的作用是什么

一文读懂mysql中的索引

我所理解的mysql之二:索引

为数据表创建索引的目的是什么

mysql锁和索引之间的联系

PHP+ajax做的分页实例代码

更多相关阅读请进入《PHP》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...