我有一张桌子 - 用户个人资料(目前使用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,我将不得不放弃全文和搜索速度
我应该选择哪一个,任何建议?搜索或更新,哪一个会更重要?
答案 0 :(得分:0)
在innoDB和MyISAM之间进行选择的一般规则是
在您的情况下,如果可能,您可以将MySQL更新为更新的版本。
InnoDB support for FULLTEXT indexes is available in MySQL 5.6.4 and higher.