我正在使用Postgresql,并且使用count的代价很高。我试图做的是计数一个表ID在另一个和更新计数的数字。 比方说第一个表是类迭代通过一个表来更新sql上的另一个表格
ID
名
num_count
其他表是餐馆
ID
名
CATEGORY_ID
我想根据Restaurants.category_id的计数值更新categories.num_count。 我可以做到这一点 Update Categories set Categories.num_count = (select count(*) from Restaurants where Restaurants.category_id = Categories.id)
但它花费了太多的时间。我试图做迭代餐馆1次,并更新Categories.num_count ++,但我做不到正确,因为它使每个类别num_count 1。它执行后1停止工作。
有没有更好的方式来做到这一点与SQL?
更好的方法是不要这样做 - 使用视图,或者在需要时计算计数。存储* derived *数据的方法存在问题,即维护它。 – Bohemian
你是对的,但它已经是数据库的快照,不会有添加或删除。我仍然可以尝试使用视图。谢谢你的建议。 – mbaydar