当前位置

MySQL中合并表需要的一些代码记录

James Qi 在 2011年12月25日 - 21:05 提交
内容摘要: 前些天在Drupal网站中为了设法解决服务器性能的问题,实验了将MySQL中的一些表合并,虽然最后证实这个效果不明显,但花了好些时间就还是把代码记录下来,以备后用。 过程步骤: ......

  前些天在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 ) )

  记录完毕。

自由标签:

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符