簡體   English   中英

使用Rails app進行數據庫索引

[英]Database Indexing with Rails app

我有表:產品,Sub_Categories和類別。 類別有許多Sub_Categories,Sub_Categories屬於_to Categories並且有許多產品和產品屬於sub_categories。 我的產品表有一個sub_category_id; 我的sub_category表有一個category_id。 索引這些表以增加應用程序加載時間的最有效方法是什么?

如果沒有更多信息,為了更好地查詢您的查詢,您可以將這些信息編入索引:

categories on id
subcategories on id
subcategories on category_id
product on id
product on sub_category_id

您也可以使用預先加載。 例如,如果您需要一個類別和幾個子類別,請使用更少的數據庫查詢加載所有內容

Category.includes(:sub_categories).find(:id)

請參閱http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

Anil的答案是正確的,但正如他暗示的那樣,你的問題太模糊了。 我建議啟用查詢日志記錄,並查看哪些查詢占用了頁面加載的時間。 然后執行有問題的查詢,並將EXPLAIN {query}鍵入mysql提示符(可以使用rails dbconsole或Oracle提供的獨立mysql客戶端訪問)。 查看瓶頸查詢中使用的索引,並詢問更具體的問題。

我猜你的很多查詢都是按類別ID查詢產品。 向產品添加索引的category_id列可能會通過避免加入來加快速度,但是您有責任使該列保持最新狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM