mysql 联合索引

<,<=,=,>,>=,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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值