对MySQL相关子查询优化方法分析
一个MySQL相关子查询优化的方法分享给您参考,如下:大多数时候,基于MySQL的子查询的性能很差,这听起来有点难过。特别是,当在子查询中使用(),它是很难估计的一些量级表时间消耗。我的MySQL知识涉及不深,只能慢慢通过的奥秘。
假设有这样一个存在的查询语句:
SELECT * FROM表
在存在
(select * from表30000和表1在ID > = =表。UUID。UUID);
表1是一台十万线的水平,和表一百万行级的表,和本机的结果是2.40s。
通过解释,我们可以看到,子查询是一个相关子查询(相关子查询);MySQL将首先执行全表扫描的外表,然后再执行子查询一步对返回的UUID的基础步骤。如果外表是一个表,我们可以想象的查询的性能会比这个考试更差。
一个简单的优化方案是通过使用内部联接的方法代替子查询,而查询语句可以改变:
复制代码代码如下:SELECT * FROM表内加入表使用(UUID),表ID > = 30000;
这台机器的测试结果用于0.68s。
通过解释,我们可以看到,MySQL使用简单类型(通过查询或联合查询),MySQL的优化器将过滤表,然后表1和表是直角的产品,然后我们可以通过条件过滤数据。
当然,并非在所有情况下,子查询的性能会很差;具体结果需要在得到实际测试结果。
更多对MySQL相关内容感兴趣的读者可以看到这个站点的主题:MySQL事务技巧摘要
希望本文能帮助您了解MySQL数据库仪表。