メモ:MySQLのLAST_INSERT_IDが遅くなる

今日構築してテスト稼動したサーバで、uptimeが3とかになるため調査したら、MySQLが重い。
slow-queryをチェックすると

select LAST_INSERT_ID() from table;

というqueryに時間がかかってる模様。
ぐぐると、上のqueryは単に以下でいいらしい。

select LAST_INSERT_ID();

要は、LAST_INSERT_ID()は文字通り最後にinsertしたIDを返すので、テーブル指定はいらないということ。むしろ、テーブルを指定するとレコードを全部舐めるので重くなる、ということのようだ。
コネクションごとにLAST_INSERT_ID()は保存されるので、(つまり、あるコネクションでinsertしてから別のコネクションでinsertされたとしてもLAST_INSERT_IDは、ちゃんと欲しいIDを返してくる)この指定でかまわないということだ。

今回テストでレコードを多めに設定したため、この現象が発生したらしい。
ちなみにアプリを修正したら、めでたくuptimeが0.5を切るようになったとさ。