"memberdata"テーブルに約155000行あり、63カラムのサイト(MLM)を開発しています。 すべてのメンバーが、異なるデータに対してそのテーブルから頻繁に検索します。 私のSQLクエリは次のようである:MySQLテーブルで検索を高速化する方法(No Index)
$search=htmlentities($_POST['search_field']); /// The field which will be selected
$value=htmlentities($_POST['search_value']); /// The value which will be compared
SELECT * FROM memberdata WHERE $search='$value' AND (senior='".$_SESSION['id']."' OR id > '".$_SESSION['id']."')
しかし、誰フィールドは、 "ID" を除いてインデックス化されていません。 "id"は "PRIMARY with AUTO_INCREMENT"です。
私のクエリには時間がかかり、「サーバーの最大実行時間が30秒を超えました」などと表示されることがあります。 どうすればよいですか?インデックスを作成せずにクエリを高速化するにはどうすればよいですか?私は共有ホストのApacheサーバーにいます。
* memberdata *テーブルの構造を教えてください。 – wisefish
少なくとも「シニア」にインデックスを追加する必要があります。それ以外の場合、テーブルのフルスキャンは100%発生します。 –
63列のテーブルは展開するのに適していないようです。彼はあなたのテーブルデザインを囲むことができます。 – ajreal