mysql - 将 ORMLite 与 MySQL 和 MyISAM 表结合使用

标签 mysql innodb myisam ormlite

ORMLite 的 MySQL 驱动程序默认使用 InnoDB 表。该文档描述了如何将其配置为使用其他表类型,但没有描述这样做的后果。最近在 InnoDB 上有过不好的经历,我想迁移到 MyISAM,但只是想检查一下 ORMLite 的所有功能是否能继续正常工作,因为我知道 MyISAM 缺乏 InnoDB 支持的一些功能。有人有这方面的经验吗?有什么潜在的问题吗?

(FWIW,我确实知道我的应用程序没有任何特殊的事务需求,这是一个明显会失败的功能)

最佳答案

抱歉,从 ORM 的角度来看,我不知道 InnoDBMyISAM 之间的区别。我希望 ORMLite没有受到任何影响。表的类型是 MySQL 的内部指定,可能会影响性能或查询行为。

这是一个good table of differences between the 2 types我将在这里总结一下。

  1. InnoDB 较新,而 MyISAM 较旧。
  2. InnoDB 更复杂,而 MyISAM 更简单。
  3. InnoDB 对数据完整性比较严格,而 MyISAM 比较宽松。
  4. InnoDB 实现插入和更新的行级锁,而 MyISAM 实现表级锁。
  5. InnoDB 有事务,而 MyISAM 没有。
  6. InnoDB 有外键和关系约束,而 MyISAM 没有。 InnoDB 具有更好的崩溃恢复能力,而 MyISAM 在系统崩溃时恢复数据完整性方面较差。
  7. MyISAM 有全文搜索索引,而 InnoDB 没有。

我在此列表中看到的唯一影响查询级别的事情是 MyISAM 不支持外键或约束,但 ORMLite(截至 2013 年 3 月)也不支持它们。 MyISAM 不支持事务,但您可以在没有事务的情况下进行 ORMLite 调用。

我在这个列表中没有看到任何会影响 ORM 的内容。也就是说,测试将是一个好主意。 :-)

关于mysql - 将 ORMLite 与 MySQL 和 MyISAM 表结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547840/

相关文章:

mysql - MyISAM DB 可以存储多少数据?

php - 在 jquery/mysql 中保存 url 时出现问题

mysql - 如何优化 InnoDB 内存参数以提高性能?

php - Mysql/InnoDB 停止在 Linode 服务器上工作

mysql - InnoDB 与 MyISAM 插入查询时间

mysql - InnoDB和MYISAM哪个好?

mysql - SQL 仅返回特定年龄的人

php - MD5 + Salt 给我一些奇怪的字符

python - 向 MySQL 添加信息不起作用

具有 550M 行和 128MB 内存的 mysql 表