InnoDB vs. MyISAM 插入查询时间

2024-06-26

我有一个大型 MySQL 表(约 1000 万行,6.5G),用于读取和写入。它是MyISAM,由于MyISAM 的所有表写入锁,我获得了很多锁。

我决定尝试迁移到 InnoDB,推荐用于读/写表,它只锁定写入时的特定行。

转换后,我测试了插入语句,结果发现 InnoDB 表中的时间比 MyISAM 表中的时间长约 15 倍(从 0.1 秒到 1.5 秒)。这是为什么?

我还没有为InnoDB配置任何东西,并且还计划添加分区,但是这个数字对我来说仍然是出乎意料的。当然,表是相同的,索引相同等。

根据要求提供附加信息:

2个索引。 Primary 是 Big INT 类型的 data_id,以及 varchar(255) 类型的非唯一 user_id。

插入约 150 行,具有相同的 user_id。

索引大小:MyISAM 200 MB,InnoDB 400 MB


A 相关答案 https://stackoverflow.com/questions/20148/myisam-versus-innodb/414934#414934建议设置innodb_flush_log_at_trx_commit当写入与读取的比率相对较高时,将变量设置为 2 可能会提高性能。看文档 http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit了解更多。

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

InnoDB vs. MyISAM 插入查询时间 的相关文章

  • 将多个表中的数据获取到单行中,同时连接一些值

    我正在尝试从表中检索数据并将多行合并为一列 而不重复任何信息 我有以下表格 简介 资格 项目 Profile pro id surname firstname 1 John James 2 King Fred 3 Luxury Yachts
  • Eloquent 使用远程 MySQL DB 花费太长时间

    我正在开发一个 Web Laravel 和 iOS 应用程序 它们都从我也在使用 Laravel 开发的 REST API 中使用 API 从 AWS RDS 实例托管的 MySQL 数据库进行查询 当我在本地主机上设置API和应用程序 并
  • 使用 SQL 函数在 ActiveRecord 中进行插入/更新

    我想在我的 Rails 应用程序中存储 IP 地址 v4 和 v6 我已经安装了MySQL 的扩展 http labs watchmouse com 2009 10 extending mysql 5 with ipv6 functions
  • php 连接池 mysql [重复]

    这个问题在这里已经有答案了 我打算使用MYSQL 有可用的连接池扩展吗 或者说连接的正常做法是什么 是不是到处都用这个啊 mysqli connect localhost xxx xxx test 人们正常使用吗mysql connect
  • 有谁知道有一个很好的库可以将一个人的名字映射到他或她的性别吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻找一个图书馆或数据库 可以根据一个人的名字或昵称猜测他或她是男性还是女性 就像是 john gt M mary gt F al
  • Mysql如何将数据库中的时间数据类型设置为仅HH:MM

    如何将我的 mysql 数据库字段 时间 数据类型设置为数据库中的 HH MM 在我的脚本中 用户仅输入 HH MM 并且数据库自动添加最后一个 SS 数字 问题是当我拉取时要编辑的值 它还添加了最后一个数字 这有点烦人 我可以用 PHP
  • 具有继承性的 JPA 映射视图和表

    我有一个无法更改的数据库设计 数据库具有具有一对一关系的表和视图 这些视图包含一些从表中计算出的额外信息 相关信息是行的状态 为此关系设置的权限是视图是只读的 因为表具有所有可用的 CRUD 操作 JPA 是选择映射到此设置的 ORM 该应
  • 如何确定选择哪个数据库

    有没有办法稍后输出当前选择的数据库的名称 只需使用 mysql query 或 mysqli query 甚至更好 或者最好使用 PDO SELECT DATABASE 附录 对于是否可以进行很多讨论FROM DUAL是否应包含在其中 在技
  • 可变字段数的数据库结构设计

    对于某种库存系统 用户可以创建一个item type它具有某些属性 现在每种类型的属性数量都是可变的 我应该如何使用 DBStructure 来解决这个问题 只需制作 X 份量propertyX领域 还是有其他方法可以以这种方式实现灵活性
  • 使用 Laravel Eloquent 关系构建三元关系

    拥有三个实体 Project Employee 就业 问题描述 员工可以从事多个项目 每个项目都有一份工作 我想要访问所有项目以及您推荐的某个员工的就业情况 我不确定 但这种关系一定看起来像ternary 物理表尚未定义 因此 可以自由地设
  • SQL Server 2008插入优化

    我必须将大量行 超过 1 000 000 000 插入到 SQL Server 数据库中 该表有一个 AI Id 两个 varchar 80 列和一个以 GETDATE 作为默认值的小日期时间 最后一项只是为了听觉 但却是必要的 我想知道插
  • 我的 PHP 脚本如何判断服务器是否繁忙?

    我想运行一个 cron 作业来进行清理 需要大量的 CPU 和 Mysql 资源 我希望它仅在服务器不相对繁忙时运行 从 PHP 中确定这一点的最简单方法是什么 例如 是否有一个查询返回最后一分钟完成了多少个查询 if function e
  • 如何使用 mysqli 设置排序规则?

    我的数据库使用 utf8 czech ci 排序规则 我也想将其设置为我的数据库连接 如果我不想要默认的 utf8 general ci Mysqli set charset 不会让我设置排序规则 Here https bugs php n
  • 为什么字符串加法需要这么长时间才能构建?

    我正在添加文本UIlabel 及其性能成本 我使用过构建时间分析器使用此链接 https stackoverflow com questions 43455325 swift build time too long when the con
  • XAMPP、PROFTPD问题

    我已经在 macOS Mojave 上安装了 XAMPP 当我运行此命令 sudo Applications XAMPP xamppfiles xampp start 时 我收到以下错误 启动 Mac OS X 7 2 10 0 的 XAM
  • 在 Symfony2 (Doctrine) 和 MySQL 中启用微秒

    我有一个具有一列 日期时间 类型的实体来存储时间戳 ORM Column type datetime protected timestamp 我有 MySQL 5 5 40 我发现它不存储微秒 所以我切换到 5 6 21 并导入了所有表格和
  • 使用 C++ 连接器的 C++ mysql 连接 bad_alloc

    尝试建立一个简单的 mysql 连接 但得到一个bad alloc即使查看类似的帖子 我也不知道如何解决这个问题 这是我的代码 include
  • Django 1.6:清除一张表中的数据

    我有一个名为 UGC 的表 想要清除该表中的所有数据 我不想重置整个应用程序 这也会删除所有其他模型中的所有数据 是否可以只清除一个模型 我还为我的应用程序配置了 South 如果这有帮助的话 你可以使用原始 SQL https docs
  • 在游戏行业担任优化员的基本技能[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Perl 和 MySql 中的 utf8 编码

    我的数据库 MySql 有 utf8 general 排序规则 我正在从数据库访问数据并显示一个网页 用 Perl 开发 它显示瑞典语字符 和不同的字符 我检查了Mysql数据库 在那里我可以看到其中包含 字符的数据 看来 访问数据时存在编

随机推荐