脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

mysql

カラム移動の失敗

カラムの移動をしようと ALTER したら失敗した。 バージョンを上げたら発生しなくなった。謎。 sql_mode は ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION …

テーブル、DBの容量

テーブル SELECT table_name "Table", engine, table_rows "Table Rows", ( data_length + index_length ) / 1024 / 1024 / 1024 "Total (GB)", ( data_length ) / 1024 / 1024 / 1024 "Data (GB)", ( index_length ) / 1024 / 1024 / 1024 "Index (GB)", ( …

slow_log 関連

オンライン変更の時にいつも忘れるのでメモ set global slow_query_log_file='/var/log/mysqld/slow_query.log'; set global long_query_time=0.1; set global slow_query_log=1; show global variables LIKE '%long%'; show global variables LIKE '%slow%';

SQLでのnull比較

カラムに null が入っている場合の比較は面倒なもの。 このような長ったらしいクエリになる。 col1 = val1 OR (col1 IS NULL AND val1 IS NULL) 比較データが 非null か null かによって、プログラムで生成するクエリを変えるという方法もある。 発行されるS…

NOT NULL で DEFAULT なしのカラムにデータが入れられる

ことがあって混乱した。バージョンや設定によるのかな? warningを吐きつつINSERTできる環境と、エラーで止まる環境がある。 int カラムに '' を入れようとした場合でも、0 が入ったりする。 MariaDB-5.5.33 は入る MySQL-5.6.25 は入らない これは一度調べ…

mysqldump

export フルダンプ mysqldump -uuser -p dbname --databases --single-transaction --order-by-primary --quick --quote-names > dump.sql テーブルとレコード (CREATE DATABASEなし) mysqldump -uuser -p dbname --single-transaction --order-by-primary -…