赞
踩
对于开发人员,说起数据查询优化,最简单也是最常用的一个方案就是创建索引。可以说索引是所有开发人员接触的第一个查询优化的方案。
在数据库中,我们通过创建索引可以大大提高查询的速度,一个好的索引可以另SQL的查询更加效率。而一个错误的索引不仅带不来效率的提高,甚至会带来额外的系统开销
建表时创建索引
建表的时候指定
CREATE TABLE user(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
CREATE创建索引
为已有的表添加
CREATE INDEX indexName ON user(username(length));
主键索引
该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL
ALTER TABLE user ADD PRIMARY KEY (ID)
唯一索引
这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)
ALTER TABLE user ADD UNIQUE indexName (username)
普通索引
添加普通索引,索引值可出现多次
ALTER TABLE user ADD INDEX indexName (username)
全文索引
该语句指定了索引为 FULLTEXT ,用于全文索引。仅可用于 MyISAM 表,
用于在一篇文章中,检索文本信息的。
ALTER TABLE user ADD FULLTEXT indexName (username)
联合索引
组合索引(包含多列的索引,与单行索引相对),遵循最左原则
ALTER TABLE user ADD INDEX indexName ( `column1`, `column2`, `column3` )
DROP INDEX indexName ON user;
alter TABLE user add INDEX indexName on(username(length))
使用 show index 命令来列出表中的相关的索引信息。可以通过添加 \g 来格式化输出信息。
SHOW INDEX FROM user
使用索引时候需要注意的
一般来说数据库索引是使用B+tree的数据结构
使用B+树,并不是二叉树而是指的平衡树,它可以根据键值快速找到数据。B+树索引通过键值可以快速定位数据行所在的页,然后数据库通过页内容读入内存,而在内存中定位到数据。
数据库索引可以实现效果
无索引的查询中,没有使用索引的情况下扫描每个记录来查找符合条件的记录。
这里我就贴一个网友的文章,虽然是很多年前的文章,但是里面内容依旧有用:https://blog.csdn.net/gprime/article/details/1687930
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。