かみぽわーる

kamipo's blog

MySQL と Unicode Collation Algorithm (UCA)

utf8_unicode_ci に対する日本の開発者の見解 - かみぽわーる で、日本語が分かる人には utf8_unicode_ci のヤバさを感じてもらえたと思うんですけど、この挙動はドキュメントによると UCA というアルゴリズムによるものらしい。 MySQL implements the xxx_u…

utf8_unicode_ci に対する日本の開発者の見解

RailsがMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0— Ryuta Kamizono (@kamipo) April …

MySQLにうるう秒は保存できるのか試した

結果、保存できなかった SET sql_mode = STRICT_ALL_TABLES; CREATE TABLE time_leap ( dt datetime, ts timestamp ) ENGINE=InnoDB; INSERT INTO time_leap VALUES ('2012-06-30 23:59:59', '2012-06-30 23:59:59'); -- Query OK, 1 row affected (0.02 sec…

InnoDBの制限とファイルフォーマットAntelopeとBarracudaの違い

この投稿はMySQL Casual Advent Calendar 2014の5日目の記事です。 @kamipo 質問させてください。このエントリーで COMPRESSED ではなく DYNAMIC を選んでいる理由はなぜですか?あまりDB詳しくないので参考リンクなどポインタを教えていただけるだけでも構…

Rails複数DB Casual TalksでMySQLとActiveRecordの話をしてきた

Rails複数DB Casual Talks - connpass お疲れさまでした。 当日は準備不足で資料がただのリンク集だったのを公開用に当社比800%ぐらい加筆したので、当日参加できなかった人が見ても内容がわかるようになってると思います。 MySQLとActiveRecord @ryopekoさ…

MySQLユーザーのためのPostgreSQL対応表

毎回わからなくなってググってるから今度からここに追記していく。 MySQL PostgreSQL SHOW DATABASES; \l USE dbname \c dbname SHOW TABLES; \dt SELECT * FROM tblname\G \x onSELECT * FROM tblname; SELECT * FROM information_schema.processlist; SELE…

ISUCON4予選に参加してきた

ISUCON4予選お疲れさまでした。 すこし時間が経ってしまったけど、当日うまくいかなかったことの復習をしたので備忘としてここに記します。 今回のチームメンバーは@Yappoさんと@ar_tamaちゃんでした。ギリギリのオファーにも関わらず一緒に参加してくれてあ…

YAPC::Asia 2014に行ってきた

#yapcramen #yapcramen @ar_tama @sugyan @sasata299 http://t.co/wQ7UsfXUtu pic.twitter.com/SgJs1a3zgQ— Ryuta Kamizono (@kamipo) August 30, 2014 OSSにも貢献しました! #yapcramen OSSに貢献しました https://t.co/ossAP7cusM— Ryuta Kamizono (@kami…

プライマリキーを使った1:1関連のテーブル分割で自動採番をしないようにする

プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight プチ・デザインパターン的なやつ、僕もよくやってます。 で、運用エンジニア的にはデータの不整合を起こしうる要因はできる限りDB側の制約でも防ぎたいので、この…

InnoDBのロックの範囲とネクストキーロックの話

この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解しています…

優勝したらあの子に告白することばかり考えていた #isucon

ISUCON3本選お疲れさまでした! うちのチームのことはだいたいgfxが書いてる通りなんですけど、おもに僕がやったこととか本選後に振り返ってみたことを書いておきます。 予選後の教訓で、最初にちゃんとコードを読んで方針を決めようって話してたので、最初…

#mysqlcasual vol.5 で話してきたこと

先日オラクルで開催された MySQL Casual Talks Vol.5 に参加してきました。 mysql-build よもやま話 ありがたいことにいつも発表の機会を頂いてるので、なにか新しいネタをと思ってるんですが今回ちょっとネタも余裕もなくて、それでも聴いてる人がちょっと…

好きな子のことかslow query logのことばかり考えてほかのことがおろそかになる性格なおしたい #isucon

ISUCON3 予選おつかれさまでした! うちのチームのことはだいたいやっぽさんが書いてる通りなんですけど、おもに僕がやったこととかAMI提出後に振り返ってみたことを書いておきます。 振り返りはコチラ。 【ISUCON3】予選の振り返り【ぶっちゅぶす】 - Toget…

YAPC::Asia 2013でmysql-buildのLTしてきた

2日目のLTで、MySQLはSQLというDSLをつかって様々なストレージエンジンを共通のインターフェースで抽象化して扱うことのできるフレームワークなわけですがということで、mysql-buildでMySQLのプラグインも一緒にビルドする話をしてきました。 mysql-buildでQ…

Ubuntu で nano が立ち上がってしまうのをなんとかする方法

@__gfx__ ubuntu だと update-alternatives --display editor がデフォルトnanoになってるから update-alternatives --set editor /usr/bin/vim.basic するとvimにできるよ— Ryuta Kamizono (@kamipo) June 26, 2013 @__gfx__ ubuntuいれたときにまっさきに…

#mysqlcasual vol.4 でLTしてきました

4/17 に日本オラクルで開催された MySQL Casual #04 で話して来ました。 当日のスライドは以下になります。 SQLがむずかしくて生きるのがつらい ちょいとまだ作り始めたばっかりで微妙なところも多々あるんですが、mruby_storage_engine のレポジトリは以下…

鎌倉幕府の年号が変わっていた

@kamipo 11922013-02-22 10:01:00 via Echofon to @kamipo @hirose31 鎌倉幕府!?2013-02-22 10:01:14 via YoruFukurou to @hirose31 鎌倉幕府フイタ2013-02-22 10:02:24 via Echofon 鎌倉幕府の年号変わったんだよな…2013-02-22 10:02:36 via Twitter for …

簡単に手元でHTTPのファイルサーバ立てる方法

.zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if which ruby > /dev/null; then ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :DocumentRoot => ".").start' el…

MySQL 5.6 で Q4M を動かしたい

一晩がんばってみたけどこれ以上は僕の力量では解決方法がわからないので誰か続きをお願いします…! kamipo/q4m at mysql-5.6 · GitHub とりあえずビルドが通ってlibqueue_engine.soまではできあがるんだけど、INSTALL PLUGIN queue SONAME 'libqueue_engine…

MySQL の unknown option エラーはオプションに loose- プレフィックスをつけると回避できる

もうMySQL 5.5 GAが出てから1年以上が経ち、つい先日とうとうMySQL 5.6 GAも出た昨今、これから先パーソナルユースでこれより以前のMySQLなど使うことはないだろうと~/.my.cnfを書いていたのだけど、昨日ちょっとしたアレでMySQL 5.1を入れたらMySQLが進化…

#cross2013 に行ってきた

聴いたやつ。 HTML5 x セキュリティ 体系的に学ぶ安全な利用規約の作り方 継続的サービス改善のゲンバのハナシ 継続的システム運用のゲンバのハナシ 感想など 出張Shibuya.XSSでCD-ROMをイジェクトしたくならない人は今すぐ病院に行ってくださいで有名な@has…

MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策

tl;dr: MySQL 5.5.14以降だとinnodb_large_prefixオプションで3072バイトまでインデックス張れる MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値が767バイトという制限があるので、ついうっかりして Index column size too large. The maxi…

はてなブログ1周年おめでとう! id:hatenablog

はてなブログ1周年おめでとう! id:hatenablog はてなブログProに申し込むのに買ったポイントが中途半端に余るんですけど、どうにかならないんですか!よろしくお願いします。 はてなブログ1周年! ありがとうキャンペーンを開始します - はてなブログ開発ブ…

#isucon2 にて死す

当日を振り返った翌日の感想はコチラ。 昨日は藤原組と山形組の抗争に巻き込まれて無残に死んだ #isucon2— Ryuta Kamizono (@kamipo) November 4, 2012 今回もチームやすべえとして@riywoくんに熱烈ラブコールを送ってたんですが、当日は飛行機の上というこ…

Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替

GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでht…

YAPC::Asia 2012 に行ってきた

今年も行ってきました! .@kamipoさんとドラ娘の2ショット!! #yapcasia @ YAPC::Asia Tokyo 2012 http://t.co/JdELQpTW— すぎゃーん ⌘ 9.30刹那ハレーション (@sugyan) September 28, 2012 僕も2ショット撮りたい!って言ったら何故かこうなった #yapcasia…

.railsrcにrails newするときのオプションを書いておける

Rails 3.2から~/.railsrcにrails newするときのオプションを書いておける。とりあえずテストはrspecつかうのといきなりbundle installしていらんので以下だけ指定してる。 # cat ~/.railsrc -T --skip-bundle

MySQL Casual Talks Vol.3 でスベってきました

MySQL Casual Talks Vol.3 : ATND おつかれさまでした!去る4月19日はこじはることAKB48小嶋陽菜の誕生日でした!先日の握手会でそのことに気づいてしまったので なにかこじはるネタでLTをしたいなということで Haruna storage engineというネタをやりました…

MacBook Airのセットアップ

買ってきたらとりあえずやる(やった)こと一覧。 システム環境設定まわり スクリーンをロック キーチェーンアクセス.appの環境設定で「メニューバーにキーチェーンの状況を表示」をチェック セキュリティとプライバシー 「スリープの後、またはスクリーンセー…

【知らないでは済まされない】Webエンジニアのためのデータベース技術[実践]入門

Webアプリケーションを運用しているエンジニアであれば、サービスの成長とともにデータベースの性能問題に頭を悩ませた経験が少なからずあるのではないでしょうか。データベースは、大量のデータを確実に保存してすばやく取り出せる魔法の箱ですが、種も仕掛…