mysql 联合索引
来源:互联网 发布:互联网十云计算概念股 编辑:程序博客网 时间:2024/06/05 07:42
<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引
若某字段已建立索引,求该字段的min()或max()时,MySQL会使用索引
不要以为WHERE中的字段顺序无所谓,可以随便放在哪,应该尽可能地第一次就过滤掉大部分无用的数据,只返回最小范围的数据。
在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。
使用短索引可以提高查询速度而且可以节省磁盘空间和I/O操作。
如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。
在mysql中执行查询时,只能使用一个索引,mysql会选择一个最严格(获得结果集记录数最少)的索引
尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
mysql where z和order by x,y 可以建立联合索引 z+x+y来处理,但必须保证x,y两个排序字段,同为倒序或正序。
不要在列上进行运算
select * from users where YEAR(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
select * from users where adddate<‘2007-01-01’;
不使用NOT IN和<>操作
存储索引方式:
B-树 查找范围
hash索引 查找一条记录
create index orderid_productid on orders(product_id, order_id);
若某字段已建立索引,求该字段的min()或max()时,MySQL会使用索引
不要以为WHERE中的字段顺序无所谓,可以随便放在哪,应该尽可能地第一次就过滤掉大部分无用的数据,只返回最小范围的数据。
在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。
使用短索引可以提高查询速度而且可以节省磁盘空间和I/O操作。
如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。
在mysql中执行查询时,只能使用一个索引,mysql会选择一个最严格(获得结果集记录数最少)的索引
尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
mysql where z和order by x,y 可以建立联合索引 z+x+y来处理,但必须保证x,y两个排序字段,同为倒序或正序。
不要在列上进行运算
select * from users where YEAR(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
select * from users where adddate<‘2007-01-01’;
不使用NOT IN和<>操作
存储索引方式:
B-树 查找范围
hash索引 查找一条记录
create index orderid_productid on orders(product_id, order_id);
阅读全文
0 0
- mysql 联合索引
- mysql 联合索引详解
- mysql 联合索引温故
- mysql联合索引详解
- mysql联合索引详解
- mysql的联合索引
- MySQL联合索引实例
- mysql联合索引
- mysql 联合索引详解
- MySQL联合索引
- mysql 联合索引
- mysql 联合索引
- mysql联合索引
- mysql 联合索引设计
- Mysql联合索引使用
- mysql 联合索引详解
- MySQL 联合索引详解
- MySQL中的联合索引
- a+b问题 题解 c++
- 记cvte前端笔试
- CMake + VTK
- 头文件<climits>常用数值
- Nginx配置upstream实现负载均衡
- mysql 联合索引
- 软件测试必须会的业务测试
- C++实现单例模式
- iOS 按钮、Cell暴力点击触发多次响应的问题研究
- iOS远程真机之ios-minicap安装使用完全指南
- effictive--避免创建不必要的对象
- Android动画之补间动画(二)
- es6中的class
- 在谷歌目标检测(Google object_detection) API 上训练自己的数据集