mysql创建高性能的索引
2017-11-25 18:20
232 查看
解读360大牛分析的PHP面试的考点
考官考点
MySQL索引的基础和类型延伸:MySQL索引创建的原则
延伸:MySQL索引的注意事项
MySQL索引的基础和类型
1)索引对性能的影响
大大的减少了服务器扫描的数据量
帮助服务器避免排序和临时表
将随机I/O变成顺序I/O
大大提高了查询的速度,降低了写的速度,占用磁盘。
2)索引的类型
索引有很多种类型,都是在存储引擎层实现的。
1.普通索引:最普通的索引,没有任何的约束限制。
2.唯一索引:与普通索引类似,但是具有唯一性约束
3.主键索引:特殊的唯一索引,不允许有空值。
4.组合索引:将多个列组合在一起创建索引,可以覆盖多个列。
5.外键索引:只有Innodb类型的表才可以使用外键索引,保证数据的一致性,完整性和实现级联操作。
6.全文索引:MySQL自带的全文索引只能用于MyISAM,并且只能对英文进行全文检索。
考点:唯一索引和主键索引的区别
一个表只能有一个主键索引,但是可以有多个唯一索引,
主键索引一定是唯一索引,唯一索引不是主键索引
主键可以和外键构成参照完整性约束,防止数据不一致。
MySQL索引创建的原则
1.最适合出现索引的列是出现在where子句中的
列,或连接子句中的列而不是出现在select关键字后面的列
2.索引列的基数越大,索引的效果越好。
3.对字符串进行索引,应该制定一个前缀长度,可以节省大量的索引空间。
4.根据情况创建复合索引,复合索引可以提高查询效率。
5.避免创建过多的索引,索引会额外的占用磁盘空间,降低写操作的效率。
6.主键尽可能的选择较短的数据类型,可以有效的减少索引的磁盘占用
,提高查询速率。
MySQL索引的注意事项
1.复合索引(联合索引)遵循左前缀原则。
2.like查询,%
不能在前(where like name =‘ %wang%’ 时索引会失效)
3.column is null可以使用索引
4.如果MySQL估计使用索引比全表扫描慢时,会自动放弃使用索引(优化器的作用)
5.如果or前的条件中的列有索引,后面的没有,索引都不会被用到。
6.列类型是字符串,查询时一定要给值加引号,否则索引失败。
相关文章推荐
- MySQL高性能 创建高性能的索引
- 高性能MySQL(二):创建高性能索引
- 高性能Mysql 3(创建高性能的索引)
- 高性能MySQL(五)—创建高性能索引(1)
- 一步一步优化你的mysql------创建高性能的索引
- Mysql优化之创建高性能索引(二)
- MySQL创建高性能的索引
- mysql 创建高性能的索引
- 高性能MySQL之创建高性能的索引
- [高性能MySQL]-创建高性能的索引
- 高性能的MySQL(5)创建高性能的索引一B-Tree索引
- 高性能的MySQL(5)创建高性能的索引一B-Tree索引
- Mysql优化之创建高性能索引(三)
- MySQL学习笔记--创建高性能索引
- 高性能的MySQL(5)创建高性能的索引一哈希索引
- 高性能MySQL--创建高性能的索引
- mysql 创建高性能索引
- High Performance Mysql 读书笔记——创建高性能索引
- mysql性能优化之创建高性能索引
- 高性能MySQL(五)—创建高性能索引(2)