mysql count 查询慢分析与总结

mysql count 查询慢分析与总结:

现象:

公司系统表A 查询count(id/*/1) 总条数时, 耗时20s. 但总条数20W条左右。

公司系统表B 查询count(id/*/1) 总条数时, 耗时3,4s. 但总条数过100W条。

分析:

同一个数据库,不同的表,条数少的查询耗时远远大于条数多的,这种现象让人感觉很诡异。

后来 查询A,B 表的存储空间发现 A 表占用空间800M左右, B表占用空间200M左右,此刻 A 表count 比B表count 耗时 可以解释通了。

进一步分析 A表,发现里面有 long text 字段,里面存储大量的数据。

试验:

把A表 long text 字段去掉,其余数据结构复制到表C. 查询表C 占用空间 30M左右, 查询count 总数 在1s 以内。

总结:

设计表结构时,如果需要有大字段存储时,最好把大字段单独弄个表存储。然后用关联建进行关联。这样后期数据量大时,count 查询不会有显著变慢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容