私はオンラインサービス(オンライン語彙トレーナー)を持っています。各ユーザーには語彙があります。
さて、Mysql-DBをどのように構成すればよいかわかりません。
私の知る限り、私にはさまざまな可能性があります。
すべてを1つのテーブルに(MyISAM):すべての語彙を1つの大きなMyISAMテーブルに格納し、各ユーザーの語彙を識別するための列「userid」を追加します
すべてのユーザーには独自のテーブル(MyISAM)があります。ユーザーが作成されるたびに、プログラムは「vocabulary_ {userid}」のような名前のテーブルを追加します。ここで、{userid}はテーブルをユーザーに接続します。
1つのテーブル内のすべて(InnoDB):ポイント1と同様ですが、MyISAMの代わりにInnoDBを使用します。
問題は、1つの大きな語彙テーブルが最大1億行に達する可能性があることです。MyISAMの場合、問題は、すべてのクエリがテーブル全体をロックすることです。したがって、オンラインに多くのユーザーがいる(そして多くのクエリを送信している)場合、テーブルが頻繁にロックされる可能性があると思います。そして、InnoDBの場合、私はかなりの数のSELECT、UPDATE、およびINSERTコマンドを持っているので、これが良い解決策であるかどうかはわかりません。
誰かが私を助けてくれることを願っています。前もって感謝します。