0

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 を選択した場合、フルテキストと検索速度をあきらめる必要があります。

どちらを選ぶべきですか、何か提案はありますか? 検索と更新、どちらがより重要になるでしょうか?

4

1 に答える 1