Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL 5.6

MySQL 5.6

MySQL 5.6 の新機能とかの抜粋。テキトーにやっつけたので、嘘書いてあるかも。

とみたまさひろ

February 14, 2013
Tweet

More Decks by とみたまさひろ

Other Decks in Technology

Transcript

  1. MySQL 5.6 Powered by Rabbit 2.0.6 DBA and Developer Guide

    to MySQL 5.6 http://dev.mysql.com/tech-resources/articles/ mysql-5.6.html より抜粋
  2. MySQL 5.6 Powered by Rabbit 2.0.6 TPS : CPUスレッド数 Read

    Only http://dev.mysql.com/tech-resources/articles/mysql-5.6.html
  3. MySQL 5.6 Powered by Rabbit 2.0.6 TPS : 接続数 START

    TRANSACTION READ ONLY Read Only http://dev.mysql.com/tech-resources/articles/mysql-5.6.html
  4. MySQL 5.6 Powered by Rabbit 2.0.6 サブクエリの高速化 DBT-3 benchmark Query

    #18 select c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice, sum(l_quantity) from customer, orders, lineitem where o_orderkey in ( select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 313 ) and c_custkey = o_custkey and o_orderkey = l_orderkey group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice order by o_totalprice desc, o_orderdate LIMIT 100; 40日(MySQL 5.5) → 6.8秒(MySQL 5.6) http://oysteing.blogspot.jp/2012/07/from-months-to-seconds-with-subquery.html
  5. MySQL 5.6 Powered by Rabbit 2.0.6 ソートされた結果から少しだけ取 り出す 2000万レコードをソートして10レコード取り 出す

    SELECT col1, ... FROM t1 ... ORDER BY name LIMIT 10; 40秒(MySQL 5.5) → 10秒(MySQL 5.6) http://didrikdidrik.blogspot.jp/2011/04/optimizing-mysql-filesort-with-small.html
  6. MySQL 5.6 Powered by Rabbit 2.0.6 ICP / MRR /

    BKA Index Condition Pushdown (ICP) WHERE 条件をストレージに渡すことで高速 化 Multi-Range Read (MRR) 複数のセカンダリキーをプライマリキー順に ソートしてディスクアクセスを高速化 Batched Key Access (BKA) テーブルJOIN時に複数のキーをまとめてアク セス
  7. MySQL 5.6 Powered by Rabbit 2.0.6 運用に便利な機能 オンラインDDL InnoDB Memcached

    / 全文検索 / EXPORT/IMPORT レプリケーション mysqlfailover / マルチスレッド スレー ブ / Binary Log Group Commit パフォーマンススキーマの改善 セキュリティ改善
  8. MySQL 5.6 Powered by Rabbit 2.0.6 オンラインDDL テーブル全体をコピーせずにテーブル構造を 変更可能 CREATE

    INDEX / DROP INDEX ADD / DROP FOREGIN KEY ADD / DROP / RENAME COLUMN AUTO_INCREMENT / ROW_FORMAT / KEY_BLOCK_SIZE NULL / NOT NULL カラムの順序変更
  9. MySQL 5.6 Powered by Rabbit 2.0.6 InnoDB: Memcached Memcached プロトコルでデータの取得/保存

    が可能 http://dev.mysql.com/tech-resources/articles/mysql-5.6.html
  10. MySQL 5.6 Powered by Rabbit 2.0.6 InnoDB: 全文検索(日本語はダメ) CREATE TABLE

    quotes (id int unsigned auto_increment primary key , author varchar(64) , quote varchar(4000) , source varchar(64) , fulltext(quote) ) engine=innodb; SELECT author AS "Apple" FROM quotes WHERE match(quote) against ('apple' in natural language mode);
  11. MySQL 5.6 Powered by Rabbit 2.0.6 InnoDB: EXPORT/IMPORT テーブル単位で別のデータベースにコピー FLUSH

    TABLE t FOR EXPORT; cp t.ibd t.cfg /work/ UNLOCK TABLES; CREATE TABLE t (...) ENGINE INNODB; ALTER TABLE t DISCARD TABLESPACE; cp /work/t.ibd /work/t.cfg ./ ALTER TABLE t IMPORT TABLESPACE;
  12. MySQL 5.6 Powered by Rabbit 2.0.6 レプリケーション: Binary Log Group

    Commit バイナリログに複数のログをまとめて保存 http://dev.mysql.com/tech-resources/articles/mysql-5.6.html
  13. MySQL 5.6 Powered by Rabbit 2.0.6 セキュリティ改善 クエリログにパスワードが暗号化されて 記録される PASSWORD()

    が SHA-256 アルゴリズム を使用 コマンドラインツール用のパスワード を .mylogin.cnf に暗号化して保存 password_expired フラグでパスワード を無効化 パスワード強度の設定