私は mysql のパーティショニング (テーブルを分割してスケーリングを改善する) を試していますが、テーブルのキーに問題があります。まず、Python のスレッド化されたコメント モジュールを使用しています...ここにスキーマがあります
+-----------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+-------+
| content_type_id | int(11) | NO | MUL | NULL | |
| object_id | int(10) unsigned | NO | | NULL | |
| parent_id | int(11) | YES | MUL | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
| date_submitted | datetime | NO | | NULL | |
| date_modified | datetime | NO | | NULL | |
| date_approved | datetime | YES | | NULL | |
| comment | longtext | NO | | NULL | |
| markup | int(11) | YES | | NULL | |
| is_public | tinyint(1) | NO | | NULL | |
| is_approved | tinyint(1) | NO | | NULL | |
| ip_address | char(15) | YES | | NULL | |
| id | int(11) | YES | | NULL | |
+-----------------+------------------+------+-----+---------+-------+
ID 列 (デフォルトではプライマリ) を削除してこのデータベースを変更し、再度追加したことに注意してください。
基本的に、主キーとして id AND content_type_id が必要です。また、idを自動インクリメントしたい。これは可能ですか?
2 番目の質問です。mysql のパーティショニングについて学習したばかりなので、パーティショニングのロジックが適切かどうか疑問に思っています。67 の異なる content_types があり、これらのコンテンツ タイプの一部 (おそらくすべて) では、コメントを作成できます。私の計画は、コメントされているオブジェクトのタイプに基づいて分割することです。例えば、画像はコメントが多いので、画像に関するあらゆるコンテンツタイプを1つのパーティションに入れ、コメントできる別のコンテンツタイプは「ブログエントリ」なので、それ用に別のパーティションがあり、などなど。これにより、負荷が大きくなるにつれて、これらのパーティションをおそらく専用のマシンに分散させることができます。これまでのところ、この概念についての私の理解はどうですか?
本当にありがとう!