免責事項
この記事はMySQL Server Blogの投稿をユーザが翻訳したものであり、Oracle公式の文書ではありません。
この記事では新しくMySQLサーバのオプションになったbinlog_error_actionについて説明しようと思う。このオプションは、MySQL 5.6.22以降で使用可能だ。
背景
…
[さらに読む]免責事項
この記事はMySQL Server Blogの投稿をユーザが翻訳したものであり、Oracle公式の文書ではありません。
この記事では新しくMySQLサーバのオプションになったbinlog_error_actionについて説明しようと思う。このオプションは、MySQL 5.6.22以降で使用可能だ。
背景
…
[さらに読む]
Morgan
Tocker というMySQLの中の人(MySQL Community Teamのひと)が 自身のブログ で、MySQL
5.7のデフォルト値の変更に関する意見を募集していたりする。
Proposed MySQL 5.7 defaults. Please send feedback! http://t.co/Uq6c7STXBE
— morgo (@morgo) 2015, 1月 23
Proposal to change Replication and InnoDB Settings in MySQL 5.7
http://t.co/gr3AwwmoEv
— morgo (@morgo) 2015, 1月 14
…
先日、 Goに初めて私のパッチが取り込まれ 、コントリビュータに仲間入りしました。
このパッチは、 database/sql.Stmt
をヘビーに使った時に性能がだいたい16コア以上のコア数にスケールしないという問題を解決するものです。
こういった問題をどうやって調査するのかと、Goにパッチが取り込まれるまでの手順を紹介します。
背景
私は TechEmpower の FrameworkBenchmarks という、いろんな言語/フレームワークで同一のアプリを作ってベンチマークするというプロジェクトで、主にPython関連のメンテナをしています。 …
[さらに読む]January 14, 2015 by Peter Zaitsev
過去数ヶ月に渡って、InnoDBのトランザクション履歴の負債の危険性と、MVCCがMySQLのパフォーマンス問題の原因になりうることについて、いくつかの記事を書いてきた。この記事ではそれに関連して、InnoDBのトランザクション分離レベルとMVCC(multi-version concurrency control、多版型同時実行制御)との関連性、そしてそれらがMySQLのパフォーマンスにどう影響するのかを取り上げてみようと思う。
…
[さらに読む]免責事項
この翻訳は MySQL Server Blogの2014/12/15に公開された記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。
InnoDBのインデックス統計情報について
いくつのサンプルを取るか? という問題
『Serverspec』を読んだ(ご恵贈ありがとうございました!)ので感想とかを書いてみたいと思います。
ちなみに、本書は1/17発売なので既に書店に並んでいると思いますし、
…
[さらに読む]
MySQL 5.7.6 からMecab によるトークナイズが標準搭載されました!
https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-mecab.html
MySQL 5.7 でInnoDB FULLTEXT SEARCH
のパーサープラグインを独自に作れるようになってます(従来はMyISAMのみ)。
23.2.4.4 Writing Full-Text Parser PluginsMySQL 5.7 supports
full-text parser plugins with MyISAM
. Full-text parser plugins
are supported with InnoDB as of MySQL 5.7.3. For introductory
information about full-text parser plugins, see Section 23.2.3.2, “Full-Text Parser
Plugins”.
さっそく、MyISAM用の全文検索パーサプラグイン mysqlftppc-bigram …
MyISAMとInnoDBでFULLTEXT SEARCHは完全に同じだと思い込んでたのでハマった。
MyISAMのNATURAL
LANGUAGEモードの検索では半分以上の行に含まれるワードは検索対象にならない。InnoDBではその仕様はなくなってる。NATURAL
LANGUAGEモードを使うケースほとんどないから困らないけど、テストケースが通らなくてハマった。
mysql> CREATE TABLE myisam (a TEXT, FULLTEXT(a)) CHARSET
latin1 ENGINE=MyISAM;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE innodb (a TEXT, FULLTEXT(a)) CHARSET
latin1 ENGINE=InnoDB;
Query OK, 0 rows affected (0.24 sec)
mysql> INSERT INTO myisam VALUES('ab cd DE'), ('aa bb DE'),
('cc dd DE');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> INSERT INTO innodb VALUES('ab cd DE'), ('aa bb DE'),
('cc …
2015/7/1 にうるう秒が挿入されるということで、うるう秒の話題が盛り上がってるようなので自分も書いてみます。
Linux 上のプログラムが時刻で60秒を刻むには、うるう秒対応のタイムゾーンを使う必要があります。
通常はうるう秒を考慮していないタイムゾーンが使用されているので、60秒を含む時刻になることはありません。
60秒を含む時刻を扱うには、right/Japan
のように right/
を前につけたタイムゾーンを指定します。
前回のうるう秒は 2012/7/1 08:59:60 (JST) だったので、これで試してみます。
% TZ=Japan date --date='2012-07-01 08:59:60' date: `2012-07-01 08:59:60' は無効な日付です % TZ=right/Japan date --date='2012-07-01 08:59:60' 2012年 7月 1日 日曜日 08:59:60 JST
Ruby
…
[さらに読む]結果、保存できなかった😢
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) INSERT INTO time_leap VALUES ('2012-06-30 23:59:60', '2012-06-30 23:59:60'); -- ERROR 1292 (22007): Incorrect datetime value: '2012-06-30 23:59:60' for column 'dt' at row 1
これを試そうと思ったのは、timestamp
型は内部表現がepoch秒なのでうるう秒保存するの無理だろうけどdatetime
型は秒の精度に6bit割いてるので[0,
64)
の範囲の値を保存できるだけの精度を持ってると思ったんですけど、よく見たらドキュメントに6 bits
second …