我有一個表的主鍵是一個整數,然後是一個用於按類型搜索的列,它是一個varchar。可以說content_id和content_type。數據庫設計:索引Varchar
SELECT * FROM TABLE_A WHERE content_type='abc'
varchar content_type的長度爲255.我正在考慮爲更快的SELECT查詢編制索引。這會提高性能嗎?即使長度爲255,如果只使用了5個字符,而不是全部255個字符,那麼這對性能有什麼影響?
我有一個表的主鍵是一個整數,然後是一個用於按類型搜索的列,它是一個varchar。可以說content_id和content_type。數據庫設計:索引Varchar
SELECT * FROM TABLE_A WHERE content_type='abc'
varchar content_type的長度爲255.我正在考慮爲更快的SELECT查詢編制索引。這會提高性能嗎?即使長度爲255,如果只使用了5個字符,而不是全部255個字符,那麼這對性能有什麼影響?
下面是一些要點:
該指數將提高讀取查詢的性能(即選擇)。但是,它往往會降低寫查詢(即INSERT和UPDATE)的性能。當你在表格中獲得越來越多的記錄時,情況尤其如此。
只使用5/255個字符不會影響您的索引性能足以注意到。
希望幫助!
上content_type
索引應該讓你的查詢更快:
select * from table_a where content_type = 'whatever';
select * from table_a where content_type like 'whatever%';
但它不會讓你的查詢更快:
select * from table_a where content_type like '%whatever%';
,如果你只使用5沒關係在255個可用字符中。
想補充一點,它只會使查詢在足夠大的表上更快。
關於postgres varchar只爲實際值使用盡可能多的空間,最大長度僅限制postgres允許插入的內容。因此,具有255的上限不會浪費索引中的空間。
它只會節省磁盤空間 – 2011-04-20 14:37:46