私は次のような問題があります:2 MySQLはわずか数変化(いくつかの新しい列、異なるデータ)との最初のデータベースに基づいており、元の1とDatabase_2、あるDatabase_1をデータベースMySQLのスロークエリ問題
があります。
私はデータベースから3テーブルを含むクエリを実行すると、私は非常に異なるパフォーマンス結果を得ます。私は両方のデータベースを同じlocalhostサーバーでテストしていました。
問合せ:
SELECT `Applicant`.`id`, `Applicant`.`name`, `User`.`login`, `User`.`id`, Project.id
FROM `applicants` AS `Applicant`
LEFT JOIN `authake_users` AS `User` ON (`Applicant`.`authake_user_id` = `User`.`id`)
LEFT JOIN `projects` AS `Project` ON (`Project`.`applicant_id` = `Applicant`.`id`)
WHERE `User`.`login` LIKE _latin1 '%1000%' AND `Project`.`id` IS NULL;
クエリの実行時間:
Database_1 - 0.3秒 - 1分40秒
- それは 速くDatabase_2ですけれども、このデータベースは1大きいです
3つのテーブルMyISAMエンジンを使用しています。テーブルの申請者とプロジェクトには文字セットutf8があり、テーブルauthake_usersには文字セットlatin1があります。
私はインデックスをチェックしました(両方のデータベースが全く同じインデックスを持っています)、それらを再構築し、ANALYZEとOPTIMIZEを3つのテーブルすべてで成功させました。
私が見つけた唯一の違いは、私が前にコマンドをEXPLAINでクエリを実行すると、以下を示している:
誰が何の任意のアイデアを持っています探して?そのようなパフォーマンスの違いを引き起こす原因は何ですか?
インデックスを確認してください。多分、レコード数によって違いがあります。 –
あなたは下の私の答えをチェックする機会を得ましたか?それを試して更新してください。 –