这可能只是一个微观表演的问题,但它总是不断地回到我的脑海(让我发疯)。我在谷歌中找不到任何关于它的答案。我只是想澄清一下。
我有这两个示例查询。
SELECT tbl_person.first_name, tbl_person.last_name, ....
FROM tbl_person
WHERE tbl_person.tbl_person_id=1
LIMIT 1
和这个。
SELECT p.first_name, p.last_name, ....
FROM tbl_person p
WHERE p.tbl_person_id=1
LIMIT 1
它们之间有什么优势或劣势吗?
我知道第二个更容易读写,但没关系,因为查询只会生成。
我对性能影响很感兴趣。如果查询的字符多几百倍,会不会影响性能?
没有任何重大意义。初始解析可能需要更长的时间,网络传输也可能需要更长的时间(尽管对于数百甚至数千个字符,您不会真正看到它,除非您通过蜂窝连接等与服务器通信!),但在那之后无论您是否使用表别名,查询计划程序都将获得相同的标记化语句。在查询规划器领域花费的时间将比解析+标记化时间重要得多,并且运行生成的计划通常会再次昂贵几个数量级。
tl;dr:如果存在性能差异,则几乎无法检测到。