【问题标题】:Using ORMLite with MySQL and MyISAM tables将 ORMLite 与 MySQL 和 MyISAM 表一起使用
【发布时间】:2013-03-21 12:40:33
【问题描述】:

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

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

【问题讨论】:

    标签: mysql innodb myisam ormlite


    【解决方案1】:

    抱歉,从 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 的内容。也就是说,测试将是一个好主意。 :-)

    【讨论】:

    • 谢谢。当我对此有更多经验并知道它的效果如何时,我会尽量记住给你一些反馈。 :)
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    相关资源
    最近更新 更多