何时使用MyISAM和InnoDB? [复制]

2023-12-09

MyISAM 的设计理念是,您的数据库被查询的次数远远多于其被更新的次数,因此它执行非常快的读取操作。如果您的读写(插入|更新)比率低于 15%,那么最好使用 MyISAM。

InnoDB 使用行级锁定,具有提交、回滚和崩溃恢复功能来保护用户数据。支持事务和容错

MyISAM 和 InnobDB 之间的上述差异是否正确?MYISAM和InnoDB是否还有其他限制,请指导。我什么时候应该使用 MyiSAM 还是 Innodb?谢谢你!


阅读存储引擎.

MyISAM:

The MyISAMMySQL 中的存储引擎。

  • 设计和创建更简单,因此更适合初学者。不用担心表之间的外部关系。
  • 由于结构更简单,整体上比 InnoDB 更快,因此服务器资源的成本也少得多。 ——大多不再正确。
  • 全文索引。 -- InnoDB 现在有了
  • 特别适合读取密集型(选择)表。 ——大多不再正确。
  • 磁盘占用空间比 InnoDB 少 2-3 倍。 -- 从版本 5.7 开始,这可能是 MyISAM 唯一真正的优势。

InnoDB:

The InnoDBMySQL 中的存储引擎。

  • 支持交易(为您提供支持ACID财产)。
  • 行级锁定。与例如相比,拥有更细粒度的锁定机制可以为您提供更高的并发性MyISAM.
  • 外键约束。允许您让数据库确保数据库状态以及表之间关系的完整性。
  • InnoDB 比 MyISAM 更能抵抗表损坏。
  • 支持数据和索引的大型缓冲池。 MyISAM 键缓冲区仅用于索引。
  • MyISAM 停滞不前;所有未来的增强都将在 InnoDB 中。随着 8.0 版本的推出,这一点变得更加清晰。

MyISAM 限制:

  • 无外键和级联删除/更新
  • 没有事务完整性(ACID 合规性)
  • 没有回滚能力
  • 4,284,867,296 行限制 (2^32) -- 这是旧的default。可配置的限制(对于许多版本)是 2**56 字节。
  • 每个表最多 64 个索引

InnoDB 限制:

  • 无全文索引(mysql 5.6以下版本)
  • 无法快速压缩,只读(5.5.14 引入ROW_FORMAT=COMPRESSED)
  • 您无法修复 InnoDB 表

如需简要了解,请阅读以下链接:

  1. MySQL 引擎:InnoDB 与 MyISAM – 优缺点比较 缺点
  2. MySQL 引擎:MyISAM 与 InnoDB
  3. InnoDB 和 MyISAM 之间的主要区别是什么?
  4. MyISAM 与 InnoDB
  5. MyISAM 和 InnoDB 有什么区别?
  6. MySql:MyISAM 与 Innodb!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用MyISAM和InnoDB? [复制] 的相关文章

  • Mysql 中的 MD5 和 Salt

    如何 解密 各种电商存储的密码添加 盐 我不是密码专家 所以 在过去 我使用过类似的东西 SELECT FROM mytable WHERE email email AND passwd MD5 pwd MySql MD5 函数只接受一个参
  • 从mysql数据库读取pdf文件

    我正在使用这个例子http www php mysql tutorial com wikis mysql tutorials uploading files to mysql database aspx http www php mysql
  • 如何在 Eclipse 中使用 MySql 数据库

    我对编程非常陌生 所以请耐心等待 如果一开始我没有理解的话 请提前道歉 我正在做一个本科编程项目 需要在 Java 程序中创建一些数据库 我正在使用 eclipse galilo 来编写我的程序 我已经下载了一个连接器 J 但还不知道应该如
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • 排除任何字段中具有 NULL 值的行结果?

    我有一个像这样的简单选择 SELECT FROM table WHERE fk id 10020 它可以工作 但有一些字段为 NULL 没有模式所以做了 SELECT FROM table WHERE fk id 10020 AND NOT
  • 保存用户的身高和体重

    我应该如何将用户的身高和体重存储在MySQL数据库中 以便我可以使用这些信息来查找特定身高或体重内的用户 另外 我需要能够以英制或公制显示此信息 我的想法是存储以厘米为单位的身高和以公斤为单位的体重信息 我更喜欢公制而不是英制 我什至可以让
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • mysql变量赋值:如何强制赋值顺序?

    由于mysql是一种声明性语言 我找不到强制赋值变量顺序的方法 采取这个查询 SET v1 0 SET v2 0 SELECT v1 v2 FROM MyTable table WHERE v1 v2 is not null AND v2
  • Django:将博客条目查看次数增加一。这有效率吗?

    我的索引视图中有以下代码 latest entry list Entry objects filter is published True order by date published 10 for entry in latest ent
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml

随机推荐

  • 使用 SwiftUI ForEach 从 NSOrderedSet 获取字符串值

    Using 这个问题 答案我可以使用 ForEach 来使用从 CoreData 中的一对多关系创建的 NSOrderedSet 但是我似乎无法访问存储在 Core Data 实体中的字符串属性 我有两个 CoreData 实体 客户端和会
  • Swift 中根据属性删除数组对象

    我有一个像这样的自定义数组 我想删除学生 ID 为 4 的元素 var strNames Student id 1 name ghj Student id 4 name def Student id 9 name bkl 以经典的方式 我确
  • JSON 数据 - 已解析或“评估”

    从安全角度来看 我认为简单地对传入的 JSON 数据进行 评估 是一个严重错误 如果你得到像下面这样的数据 你就会遇到一些问题 someData function alert i m in ur code hackin ur page 我想
  • 多次具有相同键的红黑树:将集合存储在节点中还是将它们存储为多个节点?

    显然你可以做任何一个 但前者更常见 您为什么选择后者 它是如何运作的 我读到了这个 http www drdobbs com cpp stls red black trees 184410531 这让我觉得他们做到了 它说 insert a
  • R 将每日数据与刻度数据合并

    感谢您指向 na locf Darren 更新的示例和结果如下 我有报价数据 我已将其汇总到每日数据中 以便计算每日波动性 现在我已经创建了每日波动率 我想再次将每日数据与报价数据合并 但是 我怀疑由于每日数据和分时数据的索引差异 合并仍然
  • numpy读取带有复数的.csv

    堆栈溢出 我有一个包含复数的矩阵 例如 2 2982235934153075E 11 2 1179547211742553E 9i 我需要将其导入到numpy数组中 我一直在使用genfromtext file 解析我所有其他的真实值 但我
  • 发生了错误。请联系您的系统管理员。 (6632) Jasper 服务器 6.2 中出现错误

    我正在使用 Jasper 报告 TIBCO Jaspersoft Studio 6 2 0 final Jasper 服务器 JasperReports Server 社区版 v6 2 0 我将报告书模板 Jasper 报告发布到 Jasp
  • 将 CURL 转换为 URLRequest

    我正在尝试将 Swagger 给我的以下卷曲请求转换为 URLRequest curl X GET header Accept application json header Authorization key ttn account v2
  • 从系统帐户为用户创建 ServiceAccountCredential

    我使用以下代码通过系统登录 域范围内的身份验证 代表用户进行操作 我发现实现此目的的唯一示例使用反射来设置用户 我知道这不是完成此任务的正确方法 所以我想知道是否有人可以帮助我举一个如何解决此问题的示例 ServiceAccountCred
  • 如何在 Python 中的类之间创建共享类属性

    我昨天问过这个问题 但我把我的问题写得太糟糕了 当我意识到我输入的内容时 所有回复都是针对我没有的另一个措辞错误的问题的解决方案 抱歉上次的愚蠢输入 我有两个类 我希望它们能够共享一个公共列表 而不必将其作为参数传递 我还想创建一个方法来打
  • 在 Angular.js 中的控制器之间共享资源

    简单的问题 我有这个资源 var Company resource company id id id 我想在不同的控制器之间共享 现在 我正在复制粘贴内容 但我仍然没有达到我想要添加更多代码并使用的程度角度共享服务 还有其他选择吗 只需放入
  • 在 Python 中获取从周日开始的周数时出现问题?

    我正在使用 Python 3 6 并且在获取从周日开始的周数时遇到问题 如何在 Python 中找到从周日开始的周数 t1 datetime datetime now t1 strftime U 例如 关于09 16 2018 Sunday
  • 如何在 React 中使用 Materialize CSS 的 sideNav?

    我正在使用 React 开发一个应用程序 我想使用 sidenav 组件http materializecss com side nav html 问题是我收到此错误 Sidebar js 8 Uncaught TypeError WEBP
  • python 中的符号“=”和“==”是什么意思?

    什么时候应该使用符号 什么时候只使用符号 就足够了 python 中的符号 是什么意思 两周前我开始了 python 编码 这两个符号有时让我感到困惑 有几次当我使用 时 我会收到一条错误消息 我将其更改为 后 不再有错误消息 看来当 起作
  • 安装 Window Azure 存储包时出现问题

    我在安装 Azure 存储时遇到以下问题 通过 Nuget 打包 Attempting to resolve dependency Microsoft Data OData 5 6 2 Attempting to resolve depen
  • 高度:100% VS 最小高度:100%

    我用这个css设置一个 div 至最大高度 谁能给我一个一般性的答案 两者有什么区别height 100 and min height 100 这是 W3C 的解释 link The following algorithm describe
  • 使用扭矩稳定气垫船刚体直立

    我目前正在创建一款涉及悬停自行车的游戏 当自行车与物体碰撞时 它的角度会自然改变 我希望创建某种方法让它趋于 0 这是我尝试过的 if hoverbike rotation x 0 hoverbike rotation z 0 hoverb
  • Pandas-在保留列/索引值的同时向 DataFrame 添加缺失的日期?

    我有一个 pandas 数据框 其中包含日期 客户 商品以及购买的美元价值 date customer product amt 1 1 2017 tim apple 3 1 1 2017 jim melon 2 1 1 2017 tom a
  • 淘汰赛可排序绑定顺序

    这是一个问题的后续 KnockoutJS 可按字段对 observableArray 进行排序并进行条件排序 我还有两件事正在努力实现 首先 当嵌套列表项被拖动到另一个列表时 父级为空 我想删除父级 我通过创建一个 afterMove 函数
  • 何时使用MyISAM和InnoDB? [复制]

    这个问题在这里已经有答案了 MyISAM 的设计理念是 您的数据库被查询的次数远远多于其被更新的次数 因此它执行非常快的读取操作 如果您的读写 插入 更新 比率低于 15 那么最好使用 MyISAM InnoDB 使用行级锁定 具有提交 回