mysql怎么查询百万条数据?

怎么优化速度。

附言 1  ·  2年前

索引已经加了

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

已解决。加了索引。开启了数据库缓存。进行了分区。

2年前 评论
讨论数量: 12

排除优化表的情况,例如不展示总记录数(count),只提供特定时间查询(一月内,分区),

2年前 评论

查询百万条?内存爆了啊

2年前 评论

索引利用好,问题不大

2年前 评论

可以分批次查询

DB::table('xxx')->chunkById(100, function($results, $page){
    foreach ($results as $item) {
        // 操作
    }
}, 'id');
2年前 评论

建立好索引,,具体问题具体分析

2年前 评论

如果是查询百万级的数据的话,做好索引一般查询速度就很快了。

如果是查询百万条数据,那么分批,队列等等方案都可以,主要是应用在导出数据为csv文件等。

2年前 评论
sanders

楼上有人说了,具体问题具体分析,楼主讲一下具体要做什么吧。

2年前 评论

把表结构和查询条件贴出来才好讨论吧

2年前 评论

你还不如描述一下你想干的事情...

2年前 评论

有的老哥已经说了,具体问题具体分析。

1.如果是百万级数据表查询结果,那么索引大发好,避免全表扫描,直接命中;

2.如果只是记录,那么对外提供应该圈定范围,也能避免全表扫描,当然n+1的问题避免了也能提升查询效率;

3.如果是计算结果,那么可以定期做统计,把统计结果放入其他表、缓存或者非关系型数据库;

4.如果是导出,那就综合上述的处理+分块处理。

2年前 评论
陈先生

丢出来你的explain吧

2年前 评论

已解决。加了索引。开启了数据库缓存。进行了分区。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!