1

私は 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つのパーティションに入れ、コメントできる別のコンテンツタイプは「ブログエントリ」なので、それ用に別のパーティションがあり、などなど。これにより、負荷が大きくなるにつれて、これらのパーティションをおそらく専用のマシンに分散させることができます。これまでのところ、この概念についての私の理解はどうですか?

本当にありがとう!

4

1 に答える 1

1

id は自動インクリメントされるため、それ自体が主キーになる可能性があります。主キーに content_type を追加しても、キーの一意性に関しては何も得られません。

パフォーマンスを高速化するために 2 つの列にインデックスを追加する場合は、両方を主キーに追加するのではなく、2 つの列を含むテーブルに代替の一意のインデックスを追加します。ただし、id はそれ自体で一意であることが既に保証されているため、2 つの列で一意性を強制することは無駄になることに注意してください。

于 2011-05-31T05:11:25.317 に答える