bk-mysql

[トップ][一覧][最近の更新]

このドキュメントは最近メンテされていない項目が数多くあります。 リンクが切れていたり、現状のmysqlでは直っていたり、変更されている可能性が多々。 その点だけ注意して下さい。


InnoDBへ移行する際に把握しておかなくてはいけない事

affected_rowsは英語で「影響を受けた行数」という意味

疑似csv形式で出力する

mysql database_name -NB -e 'SELECT ... INTO OUTFILE "/tmp/hogerara.csv" FIELDS TERMINATED BY "," FROM table WHERE ...'

ソースからの構築時のトラブル

なんかよく分からないけどmysqlが重い時

mysql_use_result()とmysql_store_result()の違い

SHOW TABLE STATUS;

my.cnf


DBのエンコーディングとVARCHAR(n)の関係

リファレンス

レプリケーション

一行だけmysqldumpする

 mysqldump --no-create-info --where='unique_id=1' dbname tablename >> dump.sql

テーブルが破損した時に

 REPAIR TABLE

mysqlをとめずにバックアップを取る場合のパターン

なんかよく分からないけどエラーが出た時

 DBD::mysql::db do failed: Got error 127 from table handler at (eval 54) line 349.
 $ perror 127
 Error code 127:  Unknown error 127
 127 = Record-file is crashed

テーブルの構造を、CREATE TABLEフォーマットで見る

 SHOW CREATE TABLE table_name

現在のテーブルに溜まったデータについての統計情報等を取得する

 select * from ant_user PROCEDURE ANALYSE();

一つのテーブルが4Gを超える可能性がある場合

 CREATE TABLE hoge (‥‥) AVG_ROW_LENGTH = 255 MAX_ROWS = 268435455;

手dump

 mysql -h hostname -u username -p******** dbname -NB -e 'SELECT * FROM hoge' > hoge.txt

手流し込み

 mysql -h hostname -u username -p******** dbname < hoge.sql

inner join

 SELECT t1.*, t2.hoge
 FROM table1 AS t1
 INNER JOIN table2 AS t2 ON t1.id = t2.id
 WHERE t1.val = ?
 SELECT t1.*, t2.hoge
 FROM table1 AS t1
 INNER JOIN table2 AS t2 USING (id)
 WHERE t1.val = ?

outer join (left joinまたはright join)

 SELECT t1.*, t2.hoge
 FROM table1 AS t1
 LEFT JOIN table2 AS t2 ON t1.id = t2.id
 WHERE t1.val = ?
 SELECT t1.*, t2.hoge
 FROM table1 AS t1
 LEFT JOIN table2 AS t2 USING (id)
 WHERE t1.val = ?

myisamchkをSQLで実行

 CHECK TABLE hoge_table EXTENDED;

その他

 select * from hoge where id = 123;
 select * from hoge where id = '123';
 SELECT DISTINCT non_unique_col FROM ……
 SELECT COUNT(DISTINCT non_unique_col) FROM ……
 CREATE TABLE hoge(hoge ENUM('aaa', 'AAA'));
 INSERT INTO hoge VALUES('aaa');
 INSERT INTO hoge VALUES('AAA');

経験的に得られた結論

総合的な結論



最終更新 : 2010/01/05 13:23:15 JST