レコード数が多くなると、DBの処理も慎重に行わなければいけません。多くのレコードに対して負荷の思いクエリを投げると落ちてしまう事にも繋がってしまいます。今回はMySQL起動時に下記のようなエラーが発生した時の対処法です。
phpMyAdmin – エラー
#1040 – Too many connections
内容としては「『同時接続可能な数を超えているよ」というもの。順番に現象を確認してみると、このエラーが発生していたのは「複数のテーブルを結合し、複雑なwhere句が書かれたクエリを投げていたページ」でした。
150万件と7万件程度のレコード数を持つ2つのテーブルを扱うのは大変なのか、と思いきや、下記一文を添えてあげるだけでこの問題は解決しました。
STRAIGHT_JOIN
例)通常
select * from table
例)STRAIGHT_JOINを添える
select STRAIGHT_JOIN * from table
このSTRAIGHT_JOINはテーブルの結合順を決定するもので、特に指定しない場合はオプティマイザが結合順を決定します。複数のテーブルを結合する処理が思ったように実行されない場合、STRAIGHT_JOINを試してみると良いかと思います。