MySQL

mysqlにページャがあった

http://dev.mysql.com/doc/refman/5.1/ja/mysql-commands.html ファイルに書き込む場合 mysql> pager cat > /tmp/log.txt ページャにlessを使う場合 mysql> pager less -n -i -S cliからmysql使う機会が少ないからろくに調べもしなかったけど、調べたら出て…

テーブルが作成されたクエリを確認する

show create table users\G

auto_incrementなテーブルで最後にinsertされた値を得る

物理削除したから今データ挿入したらid何になるのかわからないーとか 今まで何件のデータが入ったのか知りたいーとか show tables status like 'users';で、Auto_incrementの値を見る。それが次のデータに割り振られる値。 例えばAuto_incrementが4なら、今…

mysqlで現在の接続数を確認する

mysqladmin -u root extended-status | grep -E 'Max|Threads' Max_used_connections これまでに記録された同時接続数の最大値 Threads_connected 現在開いている接続の数 Threads_created 接続を処理するために生成されたスレッド数 Threads_running スリー…

mysqlでコマンドラインからsql実行

別に外部ファイルに書いてリダイレクトでもいいのだけれど mysql -u root -e 'show databases'

チューニングメモ

数百万件を超えてから気にしろ deleteとかしたなら、MyISAMはmyisampackで圧縮できる InnoDBには圧縮はない

limitの引数って二つ取れた

select id from user limit 3,10; とかすると3番目から10個、とか取れた。 神のコードで遊んでたら気付いた。 便利だなーっていうかどんだけ常識知らないんですか俺は

検索条件に検索結果の値を使う

SELECT id,parent_id FROM child where id not like concat('%',parent_id,'%');

大量にcreateするとき

100個のデータを作成するとき、create文を100回投げる必要はなくて、1回で済む。これをバルクインサートというそうだ。知りませんでした。 で、DBICでそれやるときはpopulateすればいいそうだ。 注意点として、全カラムの値を指定する必要がある。そうしない…

order byつけないでselectした時の並び順

一見、order by ascされたように出てくるが、たまたまそう出てくるだけで、mysqlではそんな保障はねえ。 なので明示的にorder by書きましょう。

mysqlでレプリケーション

サーバってのは障害やら攻撃やらを受ける。DBサーバ1台だと不安だとか、負荷分散とかで、まあ色々理由があって複数台使うわけだ。 mysqlのレプリケーションは比較的枯れた機能だってどっかに載ってた。いや、まあ、ググったら出るので…自分がやったときの注…

mysqldumpでinsert文にカラムも入れる

c, --complete-insert いやあ公式リファレンスは便利だ。が、オプションの存在を教えてくれる神にも感謝

既存DBからスキーマをダンプ

このDBがどんなcreate文で出来てるか知りたいけどmysqldumpすると全部出してきて困るってときは--no-data, -dでcreate文のみダンプできて幸せになれるよっていうか公式リファレンス嫁 http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

mysqldumpするときはdisable keysをつけろと

普通にmysqldumpしたファイルからリストアしようとするとめっさ遅い。 一行データを入れるたびにインデックス張ってるから、だそうで。 なのでダンプするときはdisbable keysしよう。

mysqlのvarcharって文字数?バイト数?

mysqlでvarchar(32)は(少なくともutf8)なら32文字 32byteに有らず バージョンは…今メジャーな奴

mysqlでテーブルの権限をいじる

■与える・追加 ・全部 grant all privileges on DB.* to USER@localhost identified by 'PASS'; 最後に with grant optionってつけると、そのユーザは更に誰かにその権限を与えることができる grant持ってるとユーザが削除できないので注意・一部 grant sele…

mysqlの文字化けでも直そうか

パッと見問題ないんだけど、DBの中を覗いてみたらデータぶっ壊れてるYO!どうやらin/outは同じエンコードだから問題ないけど、肝心のDBが受け取り側でエンコってる文字コードが違うみたいだYO!ってときはいいから[mysql]セクションにskip-character-set-cli…

DBD::mysqlのインストール時に気をつける点

rootのパスワードが空 testデータベースが存在している