您现在的位置是:主页 > news > 西安专业网站建设服务/seo分析与优化实训心得
西安专业网站建设服务/seo分析与优化实训心得
admin2025/6/5 1:10:49【news】
简介西安专业网站建设服务,seo分析与优化实训心得,公司注册代理中介,js做网站哪个版本的查询更快/最佳实践? (好奇的事.)更重要的是,它们是否相同?在这个例子中,这些查询是否完成了同样的事情?1)INNER JOIN有两个OR条件:SELECTDISTINCT (cat.id) as Cat ID:FROMcatINNER JOIN cuteness_showdown ON(cat.id …
哪个版本的查询更快/最佳实践? (好奇的事.)
更重要的是,它们是否相同?
在这个例子中,这些查询是否完成了同样的事情?
1)INNER JOIN有两个OR条件:
SELECT
DISTINCT (cat.id) as 'Cat ID:'
FROM
cat
INNER JOIN cuteness_showdown ON
(cat.id = cuteness_showdown.cat_1 OR cat.id = cuteness_showdown.cat_2);
2)分别查询每列和UNION ALL:
SELECT
DISTINCT (table_1.id) as 'Cat ID:'
FROM
(SELECT
cuteness_showdown.cat_1 AS id
FROM
cuteness_showdown
UNION ALL
SELECT
cuteness_showdown.cat_2 AS id
FROM
cuteness_showdown) AS table_1;
现在,如果我需要另一个表中的列,哪个版本更快/最佳?
1)INNER JOIN有两个OR条件(无变化):
SELECT
DISTINCT (cat.id) as 'Cat ID:',
cat.name as 'Cat Name:'
FROM
cat
INNER JOIN cuteness_showdown ON
(cat.id = cuteness_showdown.cat_1 OR cat.id = cuteness_showdown.cat_2);
2)分别查询每列和UNION ALL(需要INNER JOIN猫表):
SELECT
DISTINCT (table_1.id) as 'Cat ID:'
cat.name as 'Cat Name:'
FROM
(SELECT
cuteness_showdown.cat_1 AS id
FROM
cuteness_showdown
UNION ALL
SELECT
cuteness_showdown.cat_2 AS id
FROM
cuteness_showdown) AS table_1
INNER JOIN cat on
(table_1.id = cat.id);
解决方法:
要找出哪个更快,打破终端,编写一个运行1000次的脚本并比较结果:)
至于它们是否相同,查询优化器通常会为几个执行相同操作的SQL查询提出完全相同的执行计划,因此它们可能就是这样.我不能告诉你这些是否会得到这种处理,但你可以使用EXPLAIN来查看自己的执行计划并比较它们,假设你有一些数据.
如果执行计划确实相同,那么最佳做法是选择更易读的语句,以便其他任何维护代码的人都可以轻松完成.或者,如果它们不相同,那么您必须决定难以阅读的声明是否值得获得额外的性能增益,这取决于项目中的交易性能有多大.我认为,如果你有一个相对较小的数据库,这个数据库不太可能扩展很多,并且不到10毫秒的响应时间,那么性能不是问题所以只是让它易于维护.
标签:mysql,inner-join,sql,union
来源: https://codeday.me/bug/20190530/1184363.html