0

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

我有搜索栏可以搜索此表 - 名称、电子邮件、当前城市。(我使用 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 $语句...

MyISAM:

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

InnoDB:

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

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

我应该选择哪一个,有什么建议吗?搜索还是更新,哪个更重要?

4

1 回答 1

0

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

  • 大量写入 - innoDB
  • 大量读取和少量写入 - MyISAM

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

MySQL 5.6.4 及更高版本中提供了对 FULLTEXT 索引的 InnoDB 支持。

于 2013-10-03T03:03:45.137 回答