MySQLの整数値の幅
5.5のリファレンスのNumeric Typesよりtype bytes min maxTINYINT 1 -128 127TINYINT UNSIGNED 1 0 255SMALLINT 2 -32,768 32,767SMALLINT UNSIGNED 2 0 65,535MEDIUMINT 3 -8,388,608 8,388,607MEDIUMINT UNSIGNED 3 0...
View ArticleMySQL InnoDBの行ロック
ロックがわからない。MySQL InnoDBの行レベルロックを読んだけど、イマイチわからない。というわけで、社内の勉強会で知ったことをまとめてみる。FOR UPDATEかLOCK IN SHARE MODEによって、そのトランザクション中に走る別画面でのクエリの処理のタイミングが異なる。FOR...
View ArticleMySQLとPostgreSQLのCLI使い方対応表
普段がMySQLばかりなのでPostgreSQLのクライアントpsqlの使い方がわからないので、使う頻度の高いコマンドの比較表をメモっておく。そもそもの起動方法mysql:$ mysql -u *user_name* -p *db_name*psql:$ psql -U *user_name* -W *db_name*コマンド対応表mysqlpsqlexit; , \q Ctrl-D ,...
View Articleinnotop入れた
innotopが便利そうなので入れた。OSX 10.8.2、Perlはplenvで入れてあってv5.17.8。入れ方:cpanm DBI cpanm Time::HiRes cpanm Term::ReadKey cpanm DBD::mysql wget http://innotop.googlecode.com/files/innotop-1.9.0.tar.gz tar zxf...
View ArticleMySQL 5.6.10がリリースされたのでHomebrewのFormulaを書いてみた
見よう見まねで書いてみた(意図がわからず削った部分もあるのでpull req.は据え置き)。書き方Formulaを書くときにはソースを落とせるURLとSHA1ハッシュが必要になる。SHA1はスクリプトを書いて計算した(適当なツールがあるのかな)。cd /usr/local/Library/Formula git checkout -B mysql_5.6.10-tmp vim mysql.rb...
View ArticleMySQL 5.6.10を入れなおした
Homebrewの公式のFormulaが出たので、独自のFormulaで入れたものを削除して入れなおした。launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist brew update brew uninstall mysql brew install mysql --enable-memcached ln -sfv...
View ArticleMySQL 5.5から使えるようになったRANGE COLUMNSによるパーティショニング
それまでDATEやDATETIMEによるパーティショニングではTO_DAYS()関数を使って数値に変換する必要があったけど、MySQL 5.5からはRANGE COLUMNSを使うことによって日付や時刻をそのまま書けるようになった。DATETIMEだとこんな感じ。DATEも同様。/* パーティショニングに使うカラムを主キーに入れる必要があるのは相変わらず */ALTERTABLE events...
View ArticleMySQLでタイムゾーンの設定
MySQLでその接続セッション中のタイムゾーンを設定しようとしたらエラーが出た:mysql> SET @@SESSION.time_zone = "Asia/Tokyo"; ERROR 1298 (HY000): Unknown or incorrect time zone:...
View ArticleMySQLでインデックスを使っていないクエリをログに書き出す
[mysqld] slow_query_log=1 long_query_time=0.01 slow_query_log_file=/usr/local/var/mysql/slow.log log-queries-not-using-indexes
View ArticleHomebrewで入れたmysqlを再起動するにはLaunchAgentのKeepAliveをfalseに設定しておく
~/Library/LaunchAgents/homebrew.mxcl.mysql.plistのKeepAliveがtrueになっていると、mysqlのプロセスが止まった時点でlaunchctlが頑張って起動しなおそうとする。このため、mysqlを手動で再起動しようとmysql.server...
View ArticleMySQLでUPDATE+INNER JOIN
UPDATE foo INNER JOIN bar ON bar.id = foo.bar_id SET foo.col1 = bar.col1 WHERE foo.id < 1000; こんな感じ。ぱっと調べるとFROM句を付けて説明してるページがヒットしたけど、MySQL 5.6では構文エラーになって悩んだ。
View ArticleOSXでmysqlが"Too many open files in system”を起こした時の対処
10.7あたりからパーティションを切っていると頻発するようになっていて、最近ようやく対処方法が分かった。3つのファイルに次のような設定をしたのちMacを再起動する。/etc/sysctl.conf:kern.maxfiles=20480 kern.maxfilesperproc=18000/etc/launchd.conf:limit maxfiles 8192 20480 limit...
View Articlemysqlのスローログの出力をオンラインで停止、再開する
停止:mysql> SET GLOBAL slow_query_log = 0;再開:mysql> SET GLOBAL slow_query_log = 1;現状:mysql> show variables like...
View Articleレプリケーションのパスワードはmaster.infoに書かれている
MySQLでレプリケーションする際にCHANGE MASTER TOで設定したパスワードは、データディレクトリ下のmaster.infoファイルに書かれている。
View Articleinnobackupex --move-backでファイルの移動
xtrabackupからファイルを復元するとき、ネットの記事とかPerconaの記事とかを見ると--copy-backを目にすることが多いんだけど、コピーするほどのディスク領域などない…!という場合には--move-backを使えばいい。innobackupex --move-back /path/to/BACKUP-DIR...
View ArticleMySQLで実際にINSERTされたレコード数
INSERTINTO animals (id,name) VALUES (1,"dog"),(2,"cat"), ... ON DUPLICATE KEY UPDATE name = VALUES(name)...
View Article
More Pages to Explore .....