[英]How can I index my SQL table?
我有兩個表,第一個表叫做Hotel,包含以下幾列:
hotelID, AverageRating, OverallRating, URL
第二個稱為“評論”,其中包含:
hotelID, Author, Content, Date, No. Reader, No. Helpful, Overall, Value, Rooms, Location, Cleanliness, Checkin / front desk, Service, Business Service
我被要求根據查詢在表上創建相關索引。 這是我的四個查詢:
基於這些查詢,我需要索引以下列(我認為):
我不需要索引清潔度,因為這是一個平均值,因此索引編制沒有任何好處。
作者列包含審閱者的用戶名。 例如Quoka7。 也許最好按字母索引此列?
TotalRating列包含1.0到5.0之間的一個十進制(至1 dp)。 例如3.5。 也許最好將此列索引為1 dp?
最后,為hotelID列建立索引對我來說是否有益? 基本上,其格式為hotel_ *,其中*是每個酒店的唯一編號。 根據我的查詢,我認為這沒有用。
謝謝您的寶貴時間,如果您有任何疑問或需要更多信息,我會在這里。
更新
作者也可以以數字開頭,因此也許字母並不理想。
您可以使用CREATE INDEX <nameOfIndex> ON <nameOfTable> (<field>,<field>,...);
在SQL中CREATE INDEX <nameOfIndex> ON <nameOfTable> (<field>,<field>,...);
一個或多個字段。
因此,對於第一個查詢, CREATE INDEX Authors ON Review (Author);
?
看看您是否可以自己做剩下的事情。 如果您遇到麻煩,請嘗試瀏覽我們提供的講義並詢問Google,您不能指望Stack Overflow會繼續為您完成很多大學課程。
首先,如果您有任何外鍵,則在這些外鍵中使用的任何列都絕對應該被索引。 通常,在關系的一側有一個主鍵,在關系的另一側有一個普通索引。
關於要索引的列,對此沒有正確或正確的答案。 首先查看要對數據執行哪些查詢。 如果您將hotelID
列用於大量查詢,請為其建立索引。
您還可以計時查詢運行的時間,然后查看索引是否對時間產生影響。 如果索引降低了速度,那么您可以保留它!
至於索引類型,SQLite沒有特定的索引類型(如注意這里 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.