ACID機能があるため、INNODBでアプリケーションをゼロから構築しました。しかし、私は少し障害物にぶつかりました。製品テーブルがあり、各製品のカテゴリは区切り記号で区切られています。合計で約 1800 の固有のカテゴリがあり、各製品は一度に約 3 ~ 4 に関連付けられています。約 300,000 行のユニークな製品があります。
私は本に従ってこれを試し、カテゴリごとに別のテーブルを作成して正規化し、多対多の関係を使用してそれらを製品に関連付けました。ただし、問題は、products テーブル自体が約 300,000 行であり、そこに約 900,000 行の多対多のカテゴリ関連テーブルが追加されていることです。2 つのテーブル間の結合で妥当な速度を得ることはほとんど不可能です....
この場合、products テーブルの独自の TEXT フィールドに未加工の形式でカテゴリを格納することによって、少し非正規化するとどうなりますか。カテゴリに基づいてこれらの製品をフィルタリングするには、全文検索を使用できますか? このようなアプローチの長所と短所は何ですか?
ちなみに、私は共有サーバーを使用しているため、バッファーサイズを増やしたり、メモリ管理を利用して InnoDBを実際に利用したりすることはできません。
解決済み もしできれば、本を読む (正規化する) ことでスピードが犠牲になったように見えるという私の誤った幻想を嘲笑し、嘲笑したすべての人に賛成票を投じたいと思います。実際には、一貫性が得られ、あちこちでいくつかのインデックスを微調整することで、超高速の速度が得られます。みんな、ありがとう。