[英]many to many relation performance
我有三張桌子。 我的新聞有幾類。
News
-------------------------
| id | title | created
Category
-------------------------
| id | title
News_Category
-------------------------
| news_id | category_id
但是我在新聞上有很多行,大約有10,000,000行。 使用joind獲取數據將是性能問題。
Select title from News_Category left join News on (News_Category.news_id = News.id)
group by News_Category.id order by News.created desc limit 10
我想對這個問題有最好的查詢。 對於大型表中的多對多關系數據,查詢具有更好的性能。
請給我關於此用例的最佳查詢。
該查詢的最佳性能是通過永久存儲來實現的。 這是您需要的實例化視圖。
在MySQL上,您可以通過創建表來實現物化視圖。
這是
create table FooMaterializedView as
(select foo1.*, foo2.* from foo1 join foo2 on ( ... ) where ... order by ...);
現在取決於源表的更改頻率(這是接收插入,更新或刪除),以及使用最新版本的查詢需要多少資源才能實現合適的視圖維護策略 。
這取決於您的需求和問題本身的執行情況:
如果您需要采取漸進的方法,我只能祝您好運。 我可以指出,您可以使用觸發器來捕獲源表上的更改 ,並且您將需要使用算法或均衡方法來計算要對物化視圖進行的更改 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.