0

Amazon のクラウドで mysql を介して django システムを実行しています。データベースのデフォルトは innodb です。しかし今、検索のためにいくつかのテーブルにフルテキスト インデックスを配置したいと考えています。これには明らかに myisam が必要です。

明らかな解決策は、mysql に ALTER TABLE を myisam に指示することですが、それで何か問題が発生するのでしょうか?

頭に浮かぶのは、データベースの新しいバージョンを構築するときはいつでもそれを行うことを覚えておく必要があるということです.これは理論的にはまれですが、djangoに設定してください.テーブル レベルのストレージ エンジン。私は移行を書くことができると思います (私たちは南を使用します)。

私が見逃している可能性のある他のものはありますか?何がうまくいかない可能性がありますか?

4

2 に答える 2

2

アプリケーションは通知しますか? おそらくそうではありません。

それは問題を引き起こしますか?うまくいかないときだけ。MyISAM はトランザクション ストレージ エンジンではありません。トランザクション内で MyISAM テーブルのデータを変更し、変更をロールバックする必要がある場合、そのテーブルの変更はロールバックされません。恐ろしく壊そうとしてからしばらく経ちましたが、MySQL がこれが起こったときに警告すら出さないことに賭けても構わないと思っています。これによりデータの一貫性の問題が発生します。

ElasticSearch (アプリケーション レベルで統合) やSphinx (MySQL レベルで統合)など、フルテキスト インデックスの代わりに外部検索ソフトウェアを真剣に検討する必要があります。使えるようになります。)

于 2011-03-12T00:06:55.527 に答える
1

以下が役立つ場合があります。

myisam フルテキスト テーブルを使用して、innodb テーブルにインデックスを戻します。たとえば、innodb を使用してシステムを構築します。

InnoDB でフルテキストのような検索を実現する方法

于 2011-03-12T00:42:59.893 に答える