MySQL

P32 発行されるクエリの数

クエリ数を計測しておくと、既存コードの修正やリリースした際に、どの程度増減したかを観測できる。 繰り返し取得する事で、その差分を算出すれば、区間時間内のクエリ実行数を算出することも可能である。[ワンライナー] mysql -u hoge -ppassword -ppasswo…

P26 mysql CLIの補完機能

SELECTなどのSQLは大文字で書かないと補完機能は働かない。 ソフトウェアデザイン 2016年 02 月号 [雑誌] 出版社/メーカー: 技術評論社 発売日: 2016/01/18 メディア: 雑誌 この商品を含むブログ (1件) を見る

P40 日付/日時型とtimezone

MySQLではDB自体でtimezoneを次の方法で変更可能 SETtime_zone = timezone; MySQLでは、timezoneを設定するとTIMESTAMP型は影響を受けるが、DATETIME型は影響を受けない。 また、0000-00-00 00:00:00という実在しない時間を登録できる。ソフトウェアデザイン…

P40 SQLモード

MySQLでは「||」はOR演算子を指すため、Oracleの様な文字列結合には使えない。 次の設定(SQLモード)を行えば、「||」で文字結合が行える。 SET sql_mode= CONCAT_WS(',', @@sql_mode, 'PIPES_AS_CONCAT') ソフトウェアデザイン 2016年 02 月号 [雑誌]出版社/…

P36 JOINの性能差

JOINのアルゴリズムは一般的に以下の3つが存在する。 Nested Loop Join Sort Merge Join Hash Join MySQLにはNested Loop Joinしかなく、大きなデータのJOINにはとくに弱い。 PostgreSQLは3種類ともサポートしているが、それでも当然限界はある。ソフトウェ…

P20 Diskへのアクセスの仕方の違い

PostgreSQLはいかにHDDにアクセスしないかを追求したデザインとなっている。 そのため、シーケンシャルアクセスを想定しているため、SSDとの相性が悪い。MySQLもHDDを意識した作りにはなっているが、ダイレクトI/Oを使うことでOSのページキャッシュを無視で…

P19 ストレージアーキテクチャの違い

MySQLは更新型(InnoDB使用時) PostgreSQLは追記型更新型は元のデータを更新するが、追記型は元のデータを保持しつつ新しいデータにポインタを付け替えする。ソフトウェアデザイン 2016年 02 月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2016/01/18メディ…

MySQLワークベンチでupdate文を実行すると1175のエラーが発生

事象 MySQLのワークベンチでUPDATE文を実行すると、以下のエラーが発生した。 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Pre…

MySQLワークベンチからプロシージャを楽にコールする方法

CALL `hoge`.`PROC1` ("ほげ", 1, "2014-10-10", "2014-10-10 10-10-10", @a, @b, @c, @d); ・Resultセットの内容はきちんと返していればワークベンチにまんま表示される。 ・実行したいプロシージャのとこを右クリックして、call procedureというメニューを…