前段时间在一些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 ) );
评论