mysql longtext blob_php – MySQL,这是更有效的longtext,text还是blob?提高插入效率

我正在将来自多个数据库的大量数据迁移到一个数据库中.作为中间步骤,我将数据复制到每个数据类型和源数据库的文件中,然后将其复制到新数据库中的大表中.

新表中的结构很简单,称为migrate_data.它由一个id(主键),一个type_id(在数据类型集中递增),data(包含一个包含我正在迁移的数据的序列化PHP对象的字段),source_db(显然是指源数据库),data_type (确定我们正在查看的数据类型).

除了数据字段,我已经创建了所有键的键和键组合.目前,我将数据字段设置为longtext列.用户插入平均每个约需4.8秒.我可以使用桌子上的DELAY_KEY_WRITE = 1将其减少到4.3秒.

我想知道的是,是否有办法进一步提高性能.可能通过更改为不同的数据列类型.这就是我询问longtext vs text vs blob的原因.这种插入物中哪些更有效?

在你回答之前,让我再给你一些信息.我将所有数据发送到一个insert函数,该函数接受对象,通过序列化运行它,然后运行数据插入.它也是使用Drupal 6(及其db_query函数)完成的.

任何效率提升都会很棒.

当前表结构:

CREATE TABLE IF NOT EXISTS `migrate_data` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`type_id` int(10) unsigned NOT NULL DEFAULT '0',

`data` longtext NOT NULL,

`source_db` varchar(128) NOT NULL DEFAULT '',

`data_type` varchar(128) NOT NULL DEFAULT '',

PRIMARY KEY (`id`),

KEY `migrated_data_source` (`source_db`),

KEY `migrated_data_type_id` (`type_id`),

KEY `migrated_data_data_type` (`data_type`),

KEY `migrated_data_id__source` (`id`,`source_db`),

KEY `migrated_data_type_id__source` (`type_id`,`source_db`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 DELAY_KEY_WRITE=1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值