您现在的位置是:主页 > news > 西安专业网站建设服务/seo分析与优化实训心得

西安专业网站建设服务/seo分析与优化实训心得

admin2025/6/5 1:10:49news

简介西安专业网站建设服务,seo分析与优化实训心得,公司注册代理中介,js做网站哪个版本的查询更快/最佳实践? (好奇的事.)更重要的是,它们是否相同?在这个例子中,这些查询是否完成了同样的事情?1)INNER JOIN有两个OR条件:SELECTDISTINCT (cat.id) as Cat ID:FROMcatINNER JOIN cuteness_showdown ON(cat.id …

西安专业网站建设服务,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