銀河鉄道~ぽんこつエンジニアのブログ~

思いつきで書いています。

MySQL

MySQL5.7でSELECTでロックが保持されてしまう

MySQLで日次バッチ実行中に、ロック待ちタイムアウトが発生しエラーとなりました。 java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction 原因はもう一つ裏で動いていたプロシージャーB。 そのプロシージャー内の処理で、以下の…

MySQL MEMORYストレージエンジンとテンポラリテーブルについて

MySQLは、テーブル作成の際、いくつかのストレージエンジンから選択することができます。 デフォルトはInnoDB。その他、MyISM、MEMORYなど様々な種類があります。 MEMORYストレージエンジンは、格納されたデータがすべてメモリ上に保持されます。 InnDBやMyI…

truncate tableと制約

truncate tableは、外部キーなど制約がかかっているとエラーになる。 相手側テーブルにデータがあってもなくても同様。 制約を解除するか、DELETE文で削除する。

straight_join

一般的には、joinの順序はオプティマイザが一番効率の良い順序を探し、 その順番で実行してくれます。 しかし、まれにそれよりもレスポンスの良い順序に指定したい場合があります。 MySQLでは、そのような場合、joinの代わりに、straight_joinを使います。 s…