今さらですけど、自分でもちゃんと把握してなかったので調べてみました。 MySQLのCharsetのうちシフトJIS系のものはsjisとcp932の二つあります。 どちらもコードの範囲は次のように同じです。 1バイト文字 0x00-0x7F, 0xA1-0xDF 2バイト文字の1バイト目 0x81-0x9F, 0xE0-0xFC 2バイト文字の2バイト目 0x40-0x7E, 0x80-0xFC 違いは文字集合です。1バイト文字はどちらも同じ(ASCII + JIS X 0201 カナ)ですが、2バイト文字はsjisはJIS X 0208 で、cp932はWindows-31Jです。 sjisに含まれていない文字 cp932はsjisよりも文字が多く、丸囲み数字(「①」「②」「③」等)、ローマ数字(「Ⅰ」「Ⅱ」「Ⅲ」等)、組文字(「㍉」「㌍」「㍻」等)、その他「彅」「髙」等の JIS X 0
ブログを更新するのは久しぶりである。ここのところ、ずっと缶詰めになってとある書籍を書いていたからだ。書籍は大詰めを迎えており、レビューワー&出版社とのやり取りが続いている。 そんな中、先日db tech showcase tokyoでMySQL NDB Cluster 7.5の新機能、そして今後予定されている新機能の中で、すでにDMRにおいて明らかになっているものについて、発表する場を頂いた。新機能の詳細については、以下のスライドを参照して欲しい。 正直なところ、今回紹介した新機能の中には、とてもワクワクするような派手目のものはない。でも堅実かつ着実に、既存のソフトウェアを改良する内容となっている。とりわけ、MySQL NDB Cluster 7.5は、MySQL 5.7との統合がなされているので、MySQL 5.7の豊富な新機能が利用できるのは大きな利点である。また、パフォーマンス・スキ
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
WEB+DB PRESS Vol.93 作者: 原田騎郎,吉羽龍太郎,松浦隼人,須藤涼介,生沼一公,森下雅章,前島真一,鍛治匠一,伊藤直也,のざきひろふみ,うらがみ,高山温,佐々木健一,わかめまさひろ,ひげぽん,遠藤雅伸,海野弘成,はまちや2,竹原,藤田正訓,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2016/06/24メディア: 大型本この商品を含むブログを見る MySQLを主とした話でした。 スロークエリ、EXPLAINの説明、よくある問題などの説明がされており、とても良い内容でした。 (pt-query-digest は知らなかった) 以下は個人的に気になったとこ。 mysqldumpslow mysqldumpslow -s t mysql-slow.log ソートオプション 項目 説明 t/at 実行時/平均実行時間 l/al ロック時間/平均ロック時
MySQL on Microsoft Azure ハンズオンに参加をしてきました。 日時: 2016/6/16(木) 18:00-21:30 場所: 日本マイクロソフト 品川本社 会場までGoogle MAPを使いながら向かっていました。 行く途中で、1ブロック違う道を歩いていることに気づき、 予定よりも10分ほど遅れて会場に到着。 時間に余裕をもって行動しておいてよかった... 本社に入るとビルの1階にMicrosoftの受付が。 オフィス内はとても綺麗で、「ここがあの日本Microsoftか!」と心が躍りました。 セミナールームに入ると、思っていたより若手の方が少なく感じました。 一人で来られてる方が多かったからなのか、雰囲気は静かでした。 予定通りの時間に勉強会が始まり、まずは日本マイクロソフト テクニカルエバンジェリスト 久森さんから発表がありました。 ・Azure機能めっちゃ多い
はじめに やあ (´・ω・`) ようこそ、バーボンハウスへ。 このmysqlはサービスだから、まずsystemctl start mysqld して落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい そう思って、この記事をかいたんだ じゃあ、注文を聞こうか。 というわけでmysqlをdisります。disるだけなので内容はありません。いいね? mysql には罠がいっぱい そうなんですよ罠がいっぱいなんですよ奥さん。 いやこれはおそらくmysqlに限った話ではないんですけど例えばこういうの! MySQLのチューニングなんてしたらパフォーマンス落ちるだけだし、デフォル
YAPC::Asia 2015 のセッションで、MySQL のタイムゾーンの話が出ていましたが、以前タイムゾーン周りで少しはまったことがあったのを思い出したので書いてみます。 MySQLのデフォルトのタイムゾーンは mysqld 起動時のシステム設定です。TZ 環境変数の値か、変数が設定されていなければ /etc/localtime(Ubuntu の場合) です。 # TZ=Japan /usr/sbin/mysqld mysql> SHOW VARIABLES LIKE '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | JST | | time_zone | SYSTEM | +---------
オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。 オトコの熱いブログエントリのとおり大幅な進歩を遂げつつあるMySQL 5.6 最新のMySQL 5.6.4では首記のとおり、時刻を格納するカラムにマイクロ秒まで格納できるようになりました。 fsp(fractional seconds part)として0〜6を指定できます。Release notesにある以下の例だと、それぞれ小数点以下三桁、六桁が指定できます。 CREATE TABLE t1 (t TIME(3), dt DATETIME(6)); fspは無指定の場合0となります。これは既存
1. MySQLリポジトリを追加し、MySQLをインストール はじめに、CentOS 7.1にMySQLをインストールするために公式サイトからリポジトリ追加していきます。 $ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm $ sudo yum install -y mysql-community-server $ mysqld --version # mysql server のバージョンを確認 mysqld Ver 5.7.12 for Linux on x86_64 (MySQL Community Server (GPL)) $ mysql --version # mysql client のバージョンを確認 mysql Ver 14.14 Distrib 5.7.1
エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能 にて、PDOとMySQLの組み合わせで、SQLインジェクションの文脈で複文呼び出しが可能であることを報告していましたが、その後のPHPのバージョンアップで、複文実行を禁止するオプションが追加されていましたので報告します。 対象のバージョンは以下の通りです。 PHP 5.5.21 以降 PHP 5.6.5 以降 全ての PHP 7.0、7.1 前述の記事を書いた後、3大
MySQL を UTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQL の UTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------
既に昨日のdb tech showcaseのスライドでご存じの方も多いだろうが、この度MySQL 5.7の新機能を解説するための書籍を発行させていただくこととなった。8月23日発売予定である。 MySQL 5.7の新機能については、これまでブログでは紹介してこなかった。というのも、あまりにもボリュームが多すぎて、ブログという媒体でカジュアルに紹介するには向いていないと思ったからだ。とはいえ、MySQL 5.7を皆さんに使っていただくには、誰かが新機能をしっかりと解説しなければならない。どうするべきか考えた結果、書籍としてまとめて出させていただくことになった。 新機能について真面目に解説しようとすると、新しいポイントがどこなのかということを言及するために、結局のところ元々の機能についてもある程度解説が必要になってしまう。そういうわけで、この書籍では、MySQLが持つ機能の基本的なコンセプトや
表題の通り、db tech showcase Tokyo 2016にて、MySQL 5.7の新機能についての解説を行った。スライドをアップロードしたので、セッションに来てくれた方も、見逃したという方もぜひ見て頂きたい。 What's New in MySQL 5.7 InnoDB from Mikiya Okuno 思えば、4年前のdb tech showcaseでMySQL 5.6の新機能について解説したときは、1回のセッションですべての機能を詳解することができた。ところが、MySQL 5.7に至っては、昨年MyNA会でオプティマイザ関連の新機能についての解説を行ったのに続き、今回はInnoDBの新機能だけに的を絞った解説となった。このように小出しにしているのにはワケがある。いや、そもそも小出しにしているというつもりはない。単にMySQL 5.7の新機能が多すぎて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く