mysql千万级数据分页查询优化

1千2百万数据。

1.统计总行数

# 正常 9秒
SELECT count(*) from p_orders; 

# 加了一个普通索引 2秒左右

# EXPLAIN 0.002秒。但得到的结果是近似值
EXPLAIN SELECT count(*) from p_orders; 

# 降序查询最后一条记录,0.003秒
SELECT id from p_orders ORDER BY id desc LIMIT 0,1

2.数据查询

# 普通 12秒
SELECT id,state,`on`,pay_type,u_id,mobile,g_id,g_price,pay_price,p_name,
pay_callback_on,m_id,created_at,updated_at FROM p_orders LIMIT 10000000,100;

# join查询,2秒左右
a.id,a.state,a.`on`,a.pay_type,a.u_id,a.mobile,a.g_id,a.g_price,a.pay_price,a.p_name,
a.pay_callback_on,a.m_id,a.created_at,a.updated_at FROM p_orders as a join(SELECT id from p_orders LIMIT 10000000,100) as b on a.id = b.id;

# 子查询,2秒左右
SELECT * FROM p_orders where id >=(SELECT id FROM p_orders LIMIT 10000000,1) LIMIT 100;

# BETWEEN查询,0.002秒
SELECT * from p_orders where id BETWEEN 10000000 and 10000100

3.结论

个人推荐表不删除实际记录,还是软删除。然后总行数降序查询,数据BETWEEN查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值