前些天在Drupal网站中为了设法解决服务器性能的问题,实验了将MySQL中的一些表合并,虽然最后证实这个效果不明显,但花了好些时间就还是把代码记录下来,以备后用。
过程步骤:
- 备份数据库
- 离线状态
- 在4个表中创建字段
- 从3个公用的表复制相应字段内容到新创建的字段中
- 修改content_node_field、content_node_field_instance中内容
- 修改content type中field中的computed字段
- 修改views
- 修改contemplate模板
- 清除缓存
- 删除3个公用的表
- 恢复在线状态
代码:
添加字段:
ALTER TABLE `content_type_county` ADD `field_area_of_county_value` LONGTEXT NULL DEFAULT NULL ,
ADD `field_number_of_county_value` LONGTEXT NULL DEFAULT NULL ,
ADD `field_postcode_of_county_value` LONGTEXT NULL DEFAULT NULL
ALTER TABLE `content_type_county` ADD `field_area_english_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_area_pinyin_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_city_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_city_english_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_county_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_county_english_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_province_of_county_value` TEXT NULL DEFAULT NULL ,
ADD `field_province_english_of_county_value` TEXT NULL DEFAULT NULL
复制字段内容:
UPDATE content_type_address,content_field_area_pinyin SET content_type_address.field_area_pinyin_value = content_field_area_pinyin.field_area_pinyin_value WHERE content_type_address.nid=content_field_area_pinyin.nid
在content_node_field中添加几行“字段说明”:
INSERT INTO `content_node_field` (`field_name`, `type`, `global_settings`, `required`, `multiple`, `db_storage`, `module`, `db_columns`, `active`, `locked`) VALUES
('field_postcode', 'text', 'a:4:{s:15:"text_processing";s:1:"0";s:10:"max_length";s:0:"";s:14:"allowed_values";s:0:"";s:18:"allowed_values_php";s:0:"";}', 0, 0, 1, 'text', 'a:1:{s:5:"value";a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"big";s:8:"not null";b:0;s:8:"sortable";b:1;s:5:"views";b:1;}}', 1, 0),
('field_area', 'text', 'a:4:{s:15:"text_processing";s:1:"0";s:10:"max_length";s:0:"";s:14:"allowed_values";s:0:"";s:18:"allowed_values_php";s:0:"";}', 0, 0, 1, 'text', 'a:1:{s:5:"value";a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"big";s:8:"not null";b:0;s:8:"sortable";b:1;s:5:"views";b:1;}}', 1, 0);
上面基本上记录了几种需要的操作代码,但实际上合并了表后并没有明显效果,真正起作用的是为Views涉及到的字段添加索引,代码如下:
ALTER TABLE `youbianku_chn_test`.`content_type_address` ADD INDEX `field_area_value` ( `field_area_value` ( 72 ) )
记录完毕。
评论