posts_contentという名前のmysqlテーブルがあります。次のようにMysql 'Partitioning'とデータを別のテーブルに分割する
構造は次のとおりです。
CREATE TABLE IF NOT EXISTS `posts_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` int(11) NOT NULL,
`forum_id` int(11) NOT NULL,
`content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=79850 ;
問題は、テーブルはかなり巨大になっているということです。多くのギガバイトのデータ(Googleにはクロールエンジンがあります)。
データを日常的にテーブルに挿入していますが、データを取得することはめったにありません。テーブルがかなり巨大になっているので、テーブルを扱うのが難しくなります。私たちは、forum_idを使用してテーブルを分割するために、2つの可能性
- 使用MySQLのパーティショニング機能を議論し
(約50 forum_idsがある約50のパーティションが存在することになるので。そう作られている場合でも、各パーティションなおは最終的に成長します再びデータの多くギガバイトは多分最終的に
- 独自のドライブを必要とするため、各forum_idごとに1つのテーブルを作成し、そのようなデータを分割します。
私は問題を明確に説明している願っています。私は何知る必要があるのは、上記2つのうちどれが長期的にはよりよい解決策になるかである。アドバイスは何ですか?ディスadv。両方のケースのあなたの違いを
私は質問を受けましたが、あなたが提示した解決策は私には同じですが、MySQLが解決策を提供している場合を除き、ケース2では自分自身を構築するようです。私はそれを正しく持っていますか? –
Ozair Kafray - 相違があり、私が知っているものもあります。たとえば、パーティショニングを使用する場合は以前と同じようにテーブルをクエリし、エンドユーザーには1つのテーブルになりますが、多くのファイルに分割されます。あなたがデータを照会する必要がある場合は、他の方法として、最初にジョインや一時テーブルなどですべてのテーブルを戻す必要があります。あなたが知らない任意の機能を持つ... Darhazerによって投稿されたリンクは面白いです –