MySQLWorkbenchで、設計をフォワードエンジニアリングする前にインデックスの格納方法を選択できることに気付きました。ストレージタイプは次のとおりです。
これを調査したところ、かなり頭の痛い情報がいくつか見つかりました。そのため、これらの違いは何か、および/または何を選択する必要があるのかについての実用的な情報を探しています。
また、ストレージタイプを選択したことがないので、MySQLがデフォルトのストレージタイプを選択していると思います(BTREE?)
BTree(実際にはB * Tree)は、効率的な順序付けされたKey-Valueマップです。意味:
例「午前9時から午後5時までのすべてのイベント」、「「R」で始まる姓」
RTreeは_spatial index
_です。つまり、2次元以上のclose
値をすばやく識別できます。これは地理データベースで次のようなクエリに使用されます。
(x、y)からXメートル以内のすべてのポイント
ハッシュは順序付けされていないKey-Valueマップです。 BTreeよりもさらに効率的です:O(1)
の代わりにO(log n)
。
ただし、順序の概念がないため、並べ替え操作や範囲のフェッチには使用できません。
補足として、元々、MySQLはMEMORY
テーブルのハッシュインデックスのみを許可していました。しかし、それが何年にもわたって変更されたかどうかはわかりません。