如果所有列名都是唯一的,那么是否需要在MySQL查询中指定表名前缀?如果不使用它会影响性能吗?一般来说SQL是否一样?例如:
没有前缀
SELECT
id_events, title_events, name_venues, name_cities
FROM
(events
LEFT JOIN venues ON idvenues_event = id_venues)
LEFT JOIN cities ON idcities_events = id_cities
带前缀
SELECT
e.id_events, e.title_events, v.name_venues, c.name_cities
FROM
(events AS e
LEFT JOIN venues As v ON e.idvenues_event = v.id_venues)
LEFT JOIN cities AS c ON e.idcities_events = c.id_cities
答案 0 :(得分:3)
<强> 1。如果所有列名都是唯一的,那么是否需要在MySQL查询中指定表名前缀?
没必要。但为了更好的可读性,表名或别名被赋予列名,因此可以很容易理解
SQL别名
a temporary name
。more readable
。exists for the duration of the query
。<强> 2。它会影响性能吗?
不,性能取决于您在查询中提供的负载
一个视图,只是数据库中持久存储的查询should not theoretically have any performance hit
。列或表别名也是如此。一旦执行计划被数据库引擎编译和缓存,性能损失(如果有的话)几乎不会引起注意。因此,没有性能理由不使用基于视图的列别名。
<强> 3。一般来说,它是否与SQL相同?
是的