title: Mysql 'Partitioning' vs Splitting data into different tables
body: <p>We have a mysql table called posts_content.</p>
  
  <p>The structure is as follows :</p>
  
  <pre><code>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 ;
  </code></pre>
  
  <p>The problem is that the table is getting pretty huge. Many giga-bytes of data ( we have a crawling engine ). </p>
  
  <p>We keep inserting data into the table on a daily bases but seldom do we retrieve the data. Now as the table is getting pretty huge its getting difficult to handle the table. </p>
  
  <p>We discussed two possibilities </p>
  
  <ol>
  <li>Use MySQL's partitioning feature to partition the table using the forum_id ( there are about 50 forum_ids so there would be about 50 partitions. Note that even each partition if made so will eventually grow to again many giga-bytes of data maybe even eventually need its own drive </li>
  <li>Create separate tables for each forum_id and split the data like that.</li>
  </ol>
  
  <p>I hope I have clearly explained the problem. WHat I need to know is which of the above two would be a better solution in the long run. What are the adv. dis adv. of both the cases.</p>
  
  <p>Thanking you</p>