0

ORMLiteのMySQLドライバーは、デフォルトでInnoDBテーブルを使用します。ドキュメントでは、他のテーブルタイプを使用するように構成する方法について説明していますが、その結果については説明していません。最近InnoDBで悪い経験をしたので、MyISAMに移行したいのですが、MyISAMにはInnoDBでサポートされている機能がいくつかないため、移行してもORMLiteのすべての機能が引き続き正しく機能することを確認したいと思います。誰かこれの経験がありますか?潜んでいる問題はありますか?

(FWIW、アプリケーションにトランザクションの特別な必要性がないことは知っています。これは失敗する明らかな機能の1つです)

4

1 に答える 1

1

申し訳ありませんが、ORMの観点InnoDBとの違いについてはわかりません。ORMLiteが影響を受けないMyISAMことを願っています。テーブルのタイプはMySQLの内部指定であり、パフォーマンスやクエリの動作に影響を与える可能性があります。

ここに要約 する2つのタイプの違いの良い表があります。

  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に影響を与えるものは何もありません。そうは言っても、テストは良い考えだろう。:-)

于 2013-03-21T21:22:27.170 に答える