- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在将大量数据从多个数据库迁移到一个数据库中。作为中间步骤,我将数据复制到每个数据类型和源数据库的文件中,然后将其复制到我的新数据库中的一个大表中。
新表的结构很简单,叫做migrate_data。它由一个id(主键)、一个type_id(在数据类型集中递增)、data(一个包含序列化PHP对象的字段,其中包含我正在迁移的数据)、source_db(指的是源数据库,显然)、data_type (标识我们正在查看的数据类型)。
我已经为除数据字段之外的所有内容创建了键和组合键。目前我将数据字段设置为长文本列。用户插入平均每次大约需要 4.8 秒。我能够在 table 上使用 DELAY_KEY_WRITE=1 将其缩短到 4.3 秒。
我想知道的是有没有办法进一步提高性能。可能通过更改为不同的数据列类型。这就是为什么我询问 longtext vs text vs blob。对于这种插入,有没有更有效的方法?
在你回答之前,让我给你多一点信息。我将所有数据发送到一个插入函数,该函数获取对象,通过序列化运行它,然后运行数据插入。它也正在使用 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;
最佳答案
各种文本/blob 类型在 PHP 中的存储要求都是相同的,并且执行方式完全相同,除了文本字段需要进行字符集转换。 blob 字段不是。换句话说,当您存储二进制文件时,blob 适用于必须与输入时完全相同的二进制文件。文本字段用于存储可能/可以/将要从一种字符集转换为另一种字符集的文本数据。
关于php - MySQL,longtext、text 或 blob 哪个更高效?提高插入效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6749606/
我有一个网站。本网站的用户拥有包含 Longtext 字段的配置文件。我进退两难。如果我合并用户和配置文件表,它会减慢我的查询速度吗?我对用户表有大量查询。这些查询针对 integer 数字,与 Lo
我有包含 LONGTEXT 的表格帖子。我的问题是我想检索特定帖子的部分内容(基本上是分页) 我使用以下查询: SELECT SUBSTRING(post_content,1000,1000) FRO
我被这个难住了,第一次需要一些帮助。 我有一个数据库字段,它是 mysql LONGTEXT,带有一个时间戳字符串,例如字符串“1448386279” 我需要将其放入适当的 MySql TIMESTA
我需要知道如何按照写入方式显示放入数据库长文本字段中的信息。 就像用户在下面这样写: My life is full of love I fly like wedding doves I blow p
我正在开发电子邮件支持系统。每个存储的电子邮件包含 from_email、subject、date、一些标志和邮件的内容。显然,邮件数量可能很大,我们的系统主要关注最近的邮件(例如,最近 14 天),
我有一个从 SQL Server 到我的 mySQL 数据库的链接服务器(使用 MySQL ODBC Driver 5.3 的 Windows Server)。我有一个独特的情况,如果我在 OPEN
我需要一些帮助。示例: $table->text('description'); 但是,如果我希望我的数据类型是“LONGTEXT”,该如何编码/编写? 我找不到关于此 @ http://larave
好吧,就这么简短而甜蜜。我的数据库中有一个字段是 LONGTEXT。该字段通常每个字段包含大约 2,000 行文本。 我需要它做的是遍历这个 LONGTEXT 字段并取出包含输入内容的行。(抱歉,我不
我有一条插入语句从数据库链接中提取数据。 insert into table (a,b,c) select a,b,c from table@mysqldb; 这里c列在mysql中是long
我有一个 MySQL 表,其字段类型为 LONGTEXT $sql = "SELECT * FROM openings WHERE shortlisted = 'NO' ORDER BY fullN
如果您知道文本行以什么开头,如何从 LONGTEXT 列返回段落行? SELECT SUBSTRING('\nA line of text starts here', `paragraphs`) FR
我正在为我的大学构建一个带有发布消息选项的门户。因此,我使用 LONGTEXT 将消息存储在 mysql 中。但不知何故 LONGTEXT 不接受撇号标记。每当我发布带有撇号标记的句子时,它都会出现以
好吧,我有一个代码可以更新 MySQL 中的 LongText。这是代码: $id = rand(1, 100); $puffleString = "{$id}|{$name}|{$type}|100
我需要更改迁移列类型 $table->string('text');对于文本类型,我尝试通过几种方式做到这一点,但都没有奏效。是否可以在一次迁移中完成。我可以猜测删除该列,然后使用新类型再次创建它,但
我正在使用嵌入式 Apache Derby 数据库进行 JUnit 测试。我有一些 JPA 实体。有些实体包含这样的列: @Column(nullable = false) private Strin
.我需要在右侧截断带有“...”的 DataGridTextColumn LongText,但我不知道像这样“如何制作”: What i Want .与现在不同: Actual 这是我的 DataGr
我正在尝试更新新数据库中的一些图像。我已阅读如何使用此 SQL 查询: UPDATE blogs SET body = REPLACE(body, 'http://www.OLDSITE.com/wp
我的数据库的一列存储了很长的文本。大多数文本都小于 TEXT 的限制 (64KB)。然而,其中大约 0.1% 是长文本 (> 64KB)。最初我使用 TEXT 作为列数据类型,并且我必须忽略长文本的条
我是新的 wordpress。并在 Wordpress、PHP 和 MYSQL 中工作。我有一个数据库表,其中所有凭证到期日期都以如下的长文本格式保存: meta_id post_id
我的数据库中有一个长文本的集合字段。我在该字段中使用了价格,无法将字段类型更改为整数。然而,在我的查询中,我需要按这些字段进行排序,并假设我应该将它们视为一个整数。是否有另一种方法可以查询这些结果以按
我是一名优秀的程序员,十分优秀!