2013-10-03 74 views
0

我有一個表 - 用戶配置文件(目前使用MyISAM)的MyISAM和InnoDB的替代

我有搜索欄可以搜索這個表 - 姓名,電子郵件,當前城市(我使用全文搜索)

然而該表中會有很多更新可選字段(NULL默認)

如果我使用InnoDB,我將不得不切換到%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我將不得不放棄全文和搜索速度

哪一個我應該選擇,任何建議?搜索或更新,哪一個更重要?

+0

我認爲你過早地進行了優化。如果您需要FULLTEXT搜索,請使用MyISAM。否則,使用InnoDB,並擔心如果/當你有一個實際的問題。 –

+0

我已經讀過很多帖子,ppl表示MyISAM不適合更新 – Ben

+0

這並沒有那麼糟糕。如果你能從第一原則推斷數據庫不值得,那麼就用一個現實的數據集對它進行基準測試,它們太複雜了。考慮使用Postgres而不是MySQL,因爲這些荒謬的折衷是不必要的。 –

回答