0
我有一个MySQL查询来显示应用程序列表页面中的数据计数。使用左连接计数(*)需要很长时间来响应
查询
SELECT COUNT(*) FROM cnitranr left join cnitrand on cnitrand.tx_no=cnitranr.tx_no
解释屏幕截图
指标上cnitranr
tx_no (primary)approx 1 crore of data[ENGINE MYISAM]
指数cnitrand
(tx_no secondary)approx 2 crore of data[ENGINE MYISAM]
探查输出是这样
任何人都可以在优化这个查询建议可能或可能我想计数的计数。请帮助运行一个老太婆工作。
'SELECT COUNT(null)FROM cnitranr left join cnitrand on cnitrand.tx_no = cnitranr.tx_no'会稍微提高性能。还启用mysql缓存。此外,以块为单位削减这种大数据也是一个好主意。我不希望任何用户读取“31770999”行。所以你可以有多个表(甚至数据库),并根据请求从相应的数据源获取数据。 – Leri
左连接独立地在连接条件下返回左侧表的所有值。你真的想要计算'cnitranr'的所有项目吗?也许你应该使用INNER JOIN? – Atber
@PSR我已经尝试过,但这也需要很长时间。我认为我必须在分页中做一些技巧。 –