MySQL,长文本、文本还是 blob 哪个更有效?提高插入效率

2023-11-21

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

新表中的结构很简单,称为 migrate_data。它由 id(主键)、type_id(在数据类型集中递增)、data(包含保存我要迁移的数据的序列化 PHP 对象的字段)、source_db(显然是指源数据库)、data_type 组成(标识我们正在查看的数据类型)。

我已经为除数据字段之外的所有内容创建了按键和按键组合。目前我将数据字段设置为长文本列。用户每次插入平均需要大约 4.8 秒。我可以使用表上的 DELAY_KEY_WRITE=1 将其缩短至 4.3 秒。

我想知道是否有办法进一步提高性能。可能通过更改为不同的数据列类型。这就是为什么我询问长文本、文本和 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;

PHP 中的各种文本/blob 类型的存储要求都是相同的,并且执行方式也完全相同,只是文本字段需要进行字符集转换。 blob 字段不是。换句话说,blob 用于存储二进制文件,其输出结果必须与输入的内容完全相同。文本字段用于存储可能/可以/将会从一种字符集转换为另一种字符集的文本数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL,长文本、文本还是 blob 哪个更有效?提高插入效率 的相关文章

  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • Postgres、更新和锁定顺序

    我正在研究 Postgres 9 2 有 2 个更新 每个更新都有自己的事务 一个看起来像 UPDATE foo SET a 1 WHERE b IN 1 2 3 4 另一个也类似 UPDATE foo SET a 2 WHERE b IN
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 数据表 - 服务器端处理 - 数据库列合并

    我目前正在使用 DataTables 1 10 5 服务器端处理功能 http www datatables net examples data sources server side html http www datatables ne
  • DOMPDF - 未找到“字体”类

    我正在尝试通过命令行添加字体 每次我尝试都会收到以下错误 Fatal error Class Font not found in home scripts public html MarketingPalv2 load font php o
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 如何通过循环变量在 dbt 中多次运行 SQL 模型?

    我有一个 dbt 模型 测试模型 接受地理变量 zip state region 在配置中 我想通过循环变量来运行模型三次 每次使用不同的变量运行它 问题是 我有一个如下所示的宏 它将变量附加到输出表名称的末尾 即运行测试模型 with z
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • laravel 5.4 在请求验证之前修改数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我有我的自定义请求 它扩展了 Backpack CrudController 现在我想重写 ValidatesWhenResolv
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth

随机推荐

  • MySQL 中何时使用单引号、双引号和反引号

    我正在尝试学习编写查询的最佳方法 我也明白保持一致的重要性 到目前为止 我只是随意使用单引号 双引号和反引号 而没有经过任何真正的思考 Example query INSERT INTO table id col1 col2 VALUES
  • 通过 VBA 将 Excel 连接到 PostgreSQL

    是否可以像这样进行查询SELECT来自 Excel 中的 VBA 所以我可以从 Excel 查询 PostgreSQL 数据库 如果可以的话请解释一下如何连接到数据库 我在谷歌上查找但没有找到结果 在 PostgreSQL 中创建一个描述所
  • Windows 8 - 在代码隐藏中对自定义属性进行动画处理

    基本上 我想制作一堆形状并使它们动画化 所以我想出了以下自定义类 public class FunkyShape DependencyObject public double Animator get return double GetVa
  • Apache Camel 中已弃用的 XmlJsonDataFormat 的替代方案

    在 Apache Camel 中 我尝试使用 XmlJsonDataFormat 进行从 XML 到 JSON 的快速转换 然而 XMLJSON http camel apache org xmljson html 已弃用 因此我不确定除了
  • 操作栏选项卡未填充选项卡栏

    After hours of trying I finally found a method to separate the actionbar tabbar from the actionbar manualy actionbar con
  • 隐藏径向刻度标签 matplotlib

    我正在尝试用以下代码绘制极坐标图 import numpy as np import matplotlib pylab as plt def power angle l lam return 1 lam np cos np pi l np
  • Angular2 - ngx-剪贴板不工作

    我按照中所述安装了 ngx clipboard文档并将 js 也包含在 systemjs config 中 但是我收到以下错误 Unhandled Promise rejection Template parse errors Can t
  • 使用 NSubstitute 模拟通用方法

    我有一个带有许多通用方法的接口 这些方法根据传入的数据类型执行操作 如何使用 NSubstitute 模拟它 目前 我不得不使用具体的类而不是模拟 因为我无法处理调用该方法的所有可能类型 public interface IInstance
  • 如何使用我喜欢的 diff 工具/查看器查看“git diff”输出?

    当我打字时git diff 我想使用我选择的视觉差异工具 Windows 上的 SourceGear diffmerge 查看输出 我如何配置 git 来做到这一点 从Git1 6 3开始 您可以使用git difftool 脚本 see
  • 如何以编程方式设置自定义标题栏上的背景颜色渐变?

    有很多关于实现自定义标题栏的教程和问题 但是 在我的自定义标题栏中 我有一个自定义背景渐变 我想知道如何在我的代码中动态设置它 这是我的自定义标题栏被调用的地方 requestWindowFeature Window FEATURE CUS
  • 使用 Jade 显示输入值内的数据

    我对 Jade 相当陌生 想要显示一些输出的数据value文本的价值input 像这样 input type text name date value THISRIGHTHURR 但只需要值viewpost date 我尝试了多种方法 但似
  • ValueError:sklearn.RFECV 中不支持未知[重复]

    这个问题在这里已经有答案了 我试图使用 rfecv 缩小与我的分类器真正相关的特征数量 这是我写的代码 import sklearn import pandas as p import numpy as np import scipy as
  • 将十六进制颜色代码转换为颜色名称

    如何将颜色的十六进制表示形式转换为其相应的名称 例如 考虑以下颜色 rainbow 4 FF0000FF 80FF00FF 00FFFFFF 8000FFFF 他们的名字是什么 希望每个代码都有一个名字 我发现了这个功能col2rgb 但它
  • 如何在 Objective-C 中转发类方法?

    在 Objective C 中 我知道你可以将选择器从一个实例转发到另一个实例 id forwardingTargetForSelector SEL aSelector 我怎样才能将类方法转发到另一个类 resolveClassMethod
  • 下载 YouTube 视频? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想以编程方式下载 youtube 视频 使用 Java 我如何将 youtube 视频链接转换为可下载的 URL 浏览器使用以下代码播放 YouT
  • Android:当我为 ListView 设置 OnClickListener 时

    lv setOnClickListener new OnClickListener public void onClick View v Does v参考ListViewlv或列表中选择的特定项目 我相信v指的是整体ListView 要为项
  • 桥接转换:__bridge_transfer 与带有合成 setter 的 __bridge

    我正在使用 ARC 并且在使用时遇到困惑 bridge transfer 我有一处房产userName如下 property nonatomic retain NSString userName synthesize userName us
  • 查找未排序数组的中位数

    为了找到未排序数组的中位数 我们可以在 O nlogn 时间内为 n 个元素创建一个最小堆 然后我们可以逐个提取 n 2 个元素以获得中位数 但这种方法需要 O nlogn 时间 我们可以通过某种方法在 O n 时间内完成同样的事情吗 如果
  • .NET Framework 3.5 和 TLS 1.2

    我目前有一个使用 NET 3 5 框架的 Web 应用程序 我想知道它是否与 TLS 1 2 兼容 我们的代码中没有任何地方指定 TLS 版本 这是一个遗留应用程序 目前无法重新编译 我没有找到太多关于是否可以或不可以的信息 但我的印象是兼
  • MySQL,长文本、文本还是 blob 哪个更有效?提高插入效率

    我正在将大量数据从多个数据库迁移到一个数据库中 作为中间步骤 我将数据复制到每种数据类型和源数据库的文件中 然后将其复制到新数据库中的一个大表中 新表中的结构很简单 称为 migrate data 它由 id 主键 type id 在数据类