MySQL索引
来源:互联网 发布:打印机接收数据 不打印 编辑:程序博客网 时间:2024/05/17 02:07
1、概念
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
2、类型
1)普通索引
这是最基本的索引,它没有任何限制。
MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。
–直接创建索引CREATE INDEX index_name ON table(column(length))–修改表结构的方式添加索引ALTER TABLE table_name ADD INDEX index_name ON (column(length))–创建表的时候同时创建索引CREATE TABLE `table` (`id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,`time` int(10) NULL DEFAULT NULL ,PRIMARY KEY (`id`),INDEX index_name (title(length)))–删除索引15DROP INDEX index_name ON table
2)唯一索引
与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)。
如果是组合索引,则组合列的值必须唯一。
CREATE UNIQUE INDEX indexName ON table(column(length))
3)组合索引(最左前缀)
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10))
相当于创建了两个索引:
–title,time
–title
这是因为MySQL组合索引“最左前缀”的结果,简单的理解就是只从最左面的开始组合。
–使用到上面的索引SELECT * FROM article WHREE title='测试' AND time=1234567890;SELECT * FROM article WHREE utitle='测试';–不使用上面的索引SELECT * FROM article WHREE time=1234567890;
4)全文索引
3、索引的优化
1)索引列非NULL
索引列包含有NULL值,则该索引失效。 复合索引中只要有一列含有NULL值,则此复合索引失效。 所以我们在数据库设计时不要让字段的默认值为NULL。
2)like语句
like “%aaa%”,索引失效。 like “aaa%”可以使用索引
3)短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
4)索引列运算
select * from users where YEAR(adddate)<2007
在索引列上进行运算,则索引失效。
select * from users where adddate<’2007-01-01′
此索引有效。
5)or语句
select * from users where id = 170 or user_id = 990
若只有id为索引列,则此处索引失效;若使此索引有效,则or所有条件必须皆为索引列。
阅读全文
0 0
- MySQL索引 聚集索引
- mysql 索引 & 索引类型
- MySQL索引 聚集索引
- mysql 索引 & 索引类型
- mysql索引
- mysql索引
- mysql 索引
- MySql索引
- Mysql索引
- mysql 索引
- mysql 索引
- MySQL索引
- mysql索引
- mysql 索引
- mysql索引
- mysql 索引
- MySQL索引
- mysql索引
- activeMQ的使用
- golang
- 关于字符的问题
- LeetCode题解系列--1. Two Sum
- vray代理vrmesh转换导出成通用格式
- MySQL索引
- (转)他们才是全球高频交易顶级玩家
- 2017-09-09 LeetCode_010 Regular Expression Matching
- 通达oa破解版|通达oa破解版下载|通达oa2017破解版下载
- 奋斗群群赛---7
- VMware Tools的使用
- Web存储技术localStorage和sessionStorage的基本用法
- LeetCode: -Dynamic Programming-2 Keys Keyboard[650]-复制粘贴问题
- IO流