mysql sql语句优化的问题?

mysql数据库里面一个商品表;商品表有200多个字段,有2000万条数据,可是商品分页的时候,sql语句老是出现在慢查询日志里,请教高手如何优化?
select * from d_shop order by id DESC limit 200, 220

阅读 1.8k
3 个回答

大概这些优化建议吧你可以参考一下:

选择你要的字段,而不是用*选择所有字段。这样会减少数据传输量和处理的时间。

SELECT field1, field2, field3 FROM d_shop ORDER BY id DESC LIMIT 200, 20;

创建索引,提高查询速度:

CREATE INDEX idx_id ON d_shop(id);

使用延迟关键字:

SELECT field1, field2, field3 FROM d_shop ORDER BY id DESC LIMIT 200, 20;
SELECT FOUND_ROWS();

优化数据库表的结构。你可以把商品信息、库存和价格等信息分成不同的表。这样,在查询时候,你只要关联所需要的表,来提高查询性能。你可以用缓存(比如Redis或Memcached)来减少数据库负担。

基于楼上的答复,再问一点你们的商品页面是否使用了跳页,如果只有上一页和下一页的情况下可以让前端传递上一页最后一条数据id,反之则是当前页的第一条数据ID,加上where过滤,这将是很明显的提升

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题