面试官出的MySQL索引问题,这篇文章全给你解决!
副标题[/!--empirenews.page--]
0 前言 这篇文章不会讲解索引的基础知识,主要是关于MySQL数据库的B+树索引的相关原理,里面的一些知识都参考了MySQL技术内幕这本书,也算对于这些知识的总结。对于B树和B+树相关的知识,可以参考我的这篇博客:面试官问你B树和B+树,就把这篇文章丢给他 1 索引的管理 索引有很多中类型:普通索引、唯一索引、主键索引、组合索引、全文索引,下面我们看看如何创建和删除下面这些类型的索引。 1.1 索引的创建方式 索引的创建是可以在很多种情况下进行的。
[UNIQUE|FULLLTEXT]:表示可选择的索引类型,唯一索引还是全文索引,不加话就是普通索引。 table_name:表的名称,表示为哪个表添加索引。 column_name(length):column_name是表的列名,length表示为这一列的前length行记录添加索引。
1.2 主键索引和组合索引创建的方式 前面讲的都是普通索引、唯一索引和全文索引创建的方式,但是,主键索引和组合索引创建的方式却是有点不一样的,所以单独拿出来讲一下。 组合索引创建方式
主键索引创建方式 主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。
1.3 删除索引 删除索引可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。 (1)DROP INDEX index_name ON talbe_name (2)ALTER TABLE table_name DROP INDEX index_name (3)ALTER TABLE table_name DROP PRIMARY KEY 第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。 1.4 索引实例 上面讲了一下基本的知识,接下来,还是通过一个具体的例子来体会一下。
首先,我们使用直接添加索引的方式添加一个普通索引。
接着,我们用修改表结构的时候添加索引。
最后,我们再添加一个组合索引。
这样,我们就把前面索引的方式都用上一遍了,我相信你也熟悉这些操作了。
(编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |