6
MySQLテーブルにインデックスを追加するにはどうすればよいですか?
約150,000行のデータを含む非常に大きなMySQLテーブルがあります。現在、実行してみると SELECT * FROM table WHERE id = '1'; IDフィールドがプライマリインデックスであるため、コードは正常に実行されます。しかし、プロジェクトの最近の進展のために、別のフィールドでデータベースを検索する必要があります。例えば: SELECT * FROM table WHERE product_id = '1'; このフィールドは以前に索引付けされていませんでした。ただし、1つ追加したので、mysqlはフィールドにインデックスを付けますが、上記のクエリを実行しようとすると、実行速度が非常に遅くなります。EXPLAINクエリにより、product_idフィールドに既にインデックスを追加している場合、インデックスがないことがわかります。その結果、クエリは20分から30分で1つの行を返します。 私の完全なEXPLAIN結果は次のとおりです。 | id | select_type | table | type | possible_keys| key | key_len | ref | rows | Extra | +----+-------------+-------+------+--------------+------+---------+------+-------+------------------+ | 1 | SIMPLE | table | ALL | …
407
mysql
optimization
indexing
row