MyISAM& InnoDB替代品

时间:2013-10-03 02:37:03

标签: mysql

我有一张桌子 - 用户个人资料(目前使用MYISAM)

我有搜索栏可以搜索此表 - 姓名,电子邮件,当前城市。(我使用FULLTEXT SEARCH)

但是在此表中会有很多更新可选字段(默认为NULL)

如果我使用INNODB,我将不得不切换到%LIKE% 如果我使用LIKE,我写了这样的代码

我将字符串分解为数组而不是使用LIKE来搜索

$nums=//count(array());
for($n=0; $n<$nums; $n++){  
    $SQL .="
     (
     fullname LIKE :search_1_$n OR 
     email LIKE :search_2_$n OR 
     city LIKE :search_3_$n
     ) && //remove last && after
   ";
}

SELECT ... WHERE $ statement ...

MyISAM:

Good - FULLTEXT serach, search speed
Bad - UPDATE, NULL take more space

InnoDB的:

Good - UPDATE, NULL
BAD - no FULLTEXT SEARCH, search speed slower

如果我选择MYISAM,我将不得不放弃更新&amp; NULL,如果我选择INNODB,我将不得不放弃全文和搜索速度

我应该选择哪一个,任何建议?搜索或更新,哪一个会更重要?

1 个答案:

答案 0 :(得分:0)

在innoDB和MyISAM之间进行选择的一般规则是

  • 很多写作 - innoDB
  • 大量阅读和少量写作 - MyISAM

在您的情况下,如果可能,您可以将MySQL更新为更新的版本。

InnoDB support for FULLTEXT indexes is available in MySQL 5.6.4 and higher.