セキュリティ関係の新機能● パスワード期限の設定●ユーザーのロック、アンロック● SETPASSWORD コマンドの仕様変更● CREATE USER … IF NOT EXISTS●ログイン不可能なユーザーアカウント●SSL のセットアップが容易に– キーファイルの自動生成– mysql_ssl_rsa_setup●透過的テーブルスペース暗号化●デフォルトの状態がセキュアに– test データベースの廃止– 匿名ユーザーの廃止– localhost 以外の root の廃止
バッファプールのオンラインリサイズ● バッファプールサイズの増減を、無停止で実行– innodb_buffer_pool_chunk_size:デフォルト 128MB– innodb_buffer_pool_instances: デフォルト 1 or 8● バッファプールサイズが 1GB 以上の時 8●チャンクサイズとインスタンス数の積の倍数でサイズを指定mysql> SET GLOBAL innodb_buffer_pool_size = 100 * 1024 * 1024 * 1024;mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_resize_status';
Fast Index Creation(MySQL5.5)● 従来のインデックス作成は、新しい定義の(インデックス追加後の定義を持つ)テーブルを作成し、すべてのデータを再コピーするというものだった。– インデックス構築中は参照だけが可能であり、更新はブロックされるようになっていた。● MySQL 5.5 で追加された Fast Index Creation では、セカンダリインデックスだけを構築するようになった。– ただし、参照だけが可能という点は変わらない。
42.
オンライン DDL(MySQL 5.6)●DDL 実行中にも更新ができるようになった。●これにより、長時間かかるであろう ALTER TABLE も、比較的気軽に出来るようになった。● ただし、 ALTER TABLE 開始時と終了時のみ、アクセスが排他的になる。– 長時間実行中の SELECT があると、 ALTER TABLE は待たされてしまう。
43.
Sorted Index Build(Newin MySQL 5.7)● MySQL 5.6 までは、セカンダリインデックスへの挿入は、クラスタインデックスから順に 1 行ずつ読み取り、セカンダリインデックスへ挿入するというアルゴリズムだった。– セカンダリインデックスへのアクセスがランダムアクセスになるので遅い上にフラグメンテーションが発生する● MySQL 5.7 ではセカンダリインデックス構築のアルゴリズムが改善された。– クラスタインデックスからデータを読み取り、テンポラリファイルに格納– セカンダリインデックスのキーの順にソート– セカンダリインデックスへ、ソートされた状態で格納
プラガブルパーサーのサポート● MySQL 5.6–InnoDB がフルテキストインデックスをサポート– MySQL そのものにはプラガブルパーサーが存在– ただし Inno DB は独自のフルテキストパーサーを搭載●stopword を用いた実装=日本語は扱えない●MySQL 5.7– 標準のプラガブルパーサーをサポート– stopword を用いないパーサーを選択可能●日本語の全文検索が可能!!
使い方● パーサープラグインのインストールmysql> INSTALLPLUGIN mecab SONAME'libpluginmecab.so';●テーブルの作成mysql> CREATE TABLE fttest (-> a SERIAL ,-> b VARCHAR(100),-> FULLTEXT(b) WITH PARSER mecab-> ) CHARACTER SET utf8;●検索例mysql> insert into fttest (b) values(' この先生きのこるには '),(' ここではきものをぬげ ');mysql> select * from fttest where match (b)against (' きもの ');