前段時間在一些Drupal網站中設置了多種Views來方便浏覽者查看内容列表,但很快遇到服務器性能問題而被迫中止,在博文《Drupal網站添加Views後,MySQL服務器負載驟增》中有詳細記錄。
周末實驗成功了《為Drupal網站中的CCK字段在MySQL中添加添加索引來加速Views展示》,應該可以解決前面的問題,這兩天我将以前涉及到網站數據庫打開,在需要添加索引的字段上都添加了索引,然後把Squid和robots.txt中設置的屏蔽網址都解封了,也沒有再看到負載飙升的情況。
幾種添加索引的地方記錄一下:
- 單個字段添加索引:計算字段内容的最長長度,作為添加索引的長度,添加單個字段索引
-
單個字段添加首字母索引:将添加索引的長度固定設置為1(後被證實無效,已經删除) - 多個字段添加聯合索引:在用到多個參數Views的情況下,需要根據實際參數情況,添加聯合索引
用到的幾段代碼也記錄一下:
- 計算字段内容的最長長度代碼:SELECT max( length( `field_cityname_value` )) FROM `content_type_zip_code`;
- 添加單個字段的索引:ALTER TABLE `postcodebase_wy`.`content_type_zip_code` ADD INDEX `field_cityname_value` ( `field_cityname_value` ( 24 ) );
- 添加多個字段聯合索引:ALTER TABLE `mingluji_wy`.`content_type_business_directory` ADD INDEX `city_and_sic` ( `field_city_value` ( 25 ) , `field_sic_value` ( 64 ) );
评论