从MySQL视图查询单个记录包括数千个,相当于查询那些数千+ 1?

时间:2009-03-09 22:09:10

标签: sql mysql performance

我一直希望并假设它不是 - 集合论(或其他东西)提供了结果的捷径。

我创建了一个不可更新的视图,它以一种产生指数记录数的方式聚合来自多个表的数据。从这个视图,我一次查询一条记录。因为底层数据集很小,所以这种技术效果很好 - 但我担心它不会扩展。

我听说MySQL使用临时表来实现视图。我想到每一个查询都会出现潜在的大量临时表,并且存在不存在。

1 个答案:

答案 0 :(得分:1)

使用explain <select query>语法查看查询中实际发生的情况。

一般来说,使用视图等同于使用具有相同SQL的子查询。没有更好,也没有更糟,只是一种阻止一遍又一遍地写同一子查询的捷径。

有时候你最终会得到用于解决某些comples查询的临时表,但是如果DB结构得到很好的优化并且使用视图而不是子查询不会改变任何东西,它就不应该经常发生