在查询中不使用空格和短表别名有什么好处吗?

时间:2014-08-23 09:13:26

标签: php mysql performance

没有多余空格和小表别名的查询是否会减少MySQL服务器的负担,或者差异是否可以忽略不计?

SELECT my_table.a, my_table.b, my_table.c, my_table.d
FROM table_containing_data as my_table
WHERE my_table.a = 1 AND my_table.b = 1 AND my_table.c = 1 AND my_table.d = 1

VS

SELECT t.a,t.b,t.c,t.d
FROM table_containing_data t
WHERE t.a=1 AND t.b=1 AND t.c=1 AND t.d=1

我完全了解每个人的可读性。这个问题纯粹是假设的。如果差异(每天运行数十万次这样的查询)很重要,我可能会改变查询引擎的工作方式。

1 个答案:

答案 0 :(得分:1)

即使是数十亿次查询,查询中的空格也无法发挥作用。

数据库无论如何都会缓存查询和执行计划,所以如果你最后一遍又一遍地发送相同的查询(为什么你不使用预准备语句?)任何体面的数据库都不必再解析整个事情。当然,这只适用于你不在同一个字符串中混合使用SQL和数据的情况......这通常是用MySQL完成的。所以这是使用准备好的陈述的另一个原因!

另外,与实际从磁盘中检索数据相比(顺便提一下,如果您的数据库不是很大,很少会发生 - 您希望数据库中的大量RAM尽可能地在内存中)任何解析等等可以忽略不计。