i have a table - ユーザー プロファイル (現在 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 $ステートメント...
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 を選択した場合、フルテキストと検索速度をあきらめる必要があります。
どちらを選ぶべきですか、何か提案はありますか? 検索と更新、どちらがより重要になるでしょうか?