Mysql百万级分页查询的优化 (组合索引的使用)

当一个mysql表数据达到百万,分页查询的功能就会十分缓慢

使用组合索引解决问题

根据实际情况业务和表结构来创建对应的组合索引的列
消息表:存储大量的关于各个用户的消息 每次查询消息记录涉及的数据非常大
所以根据我的分页查询业务来创建的索引 效率提升很大

  KEY `message_use_limit` (`msg_to`,`chat_type`,`msg_from`,`timestamp`,`id`) USING BTREE,
  KEY `message_use_limit2` (`msg_to`,`chat_type`,`timestamp`,`id`) USING BTREE

创建索引的语句

ALTER TABLE table_name ADD INDEX index_name(msg_to,chat_type,msg_from,timestamp,id);

查询

select * from table_name where msg_to = 1 and chat_type = 1 and msg_from = 2 and timestamp =123456789 limit 100000 50;

通过在where条件中正确的使用组合索引 就可以触发组合索引 提高效率

根据创建的索引列来作为查询的条件 (遵循最左原则 where必须从最左边的索引开始使用才有效果)

关于组合索引的具体介绍:
组合索引介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值