MySQL 5.7新機能解読

2715 ワード

2015年10月22日、MySQLは5.7.9安定版を発表した.MySQLの公式マニュアルにはMySQL 5.7の新しい特性についての紹介がたくさんあるが、ここでは、SQL My 5.7に注目すべき新しい特性を見てみよう.
1、セキュリティユーザー表mysql.userのpluginフィールドは空にできません.デフォルトはmysql_です.native_mysqlではなくpasswordold_passwordは、古いパスワードフォーマットをサポートしません.パスワードの期限切れメカニズムを追加し、期限切れになったらパスワードを変更する必要があります.そうしないと、無効になったり、砂箱モードになったりする可能性があります.mysql_の使用install_dbが初期化されると、デフォルトではランダムパスワードが自動的に生成され、除算は作成されません.root@localhost他のアカウントもtestライブラリを作成しません.5.7ではmysqld-initializeを使用してデータベースを初期化することを推奨します.初期化時に-initial-insecureを追加すると、空のパスワードが作成されます.root@localhostアカウント、そうでなければパスワード付きのroot@localhostアカウント、パスワードはlog-errorログファイルに直接書きます(5.6では~/.mysql_secretに入れます);5.7では、一般ユーザに対してunlockおよびlock操作を行うことができる.2、InnoDBエンジンのいくつかの機能を強化してDDL操作を最適化し、InnoDB臨時表に関わる時、性能が著しく向上した;5.6以前はInnoDBテンポラリ・テーブルのメタデータがInnoDBシステム・テーブルに格納されていたが、5.7ではテンポラリ・テーブルの情報およびメタデータが新たに多くなったテーブルINNODB_に格納されていたTEMP_TABLE_INFO中5.7では、InnoDBテンポラリ・テーブルは非圧縮で個別の表領域に格納され、MySQLサービスを開始するたびに自動的に作成され、デフォルトではDATADIRの下に格納され、そのパスはパラメータinnodb_temp_data_file_path指定;オンライン(INPLACE)でVARCHAR列の長さを増やすことをサポートします.しかし、0-255の長さは1つの区間であり、256以上は別の区間であり、255というハードルを越えることはできない.例えば、長さを100から1000に拡張する(255の長さ以内は1バイトで、255の長さより大きい場合は2バイトで表す必要があるため).VARCHARの長さをオンラインで縮小することはサポートされていません.innodbのサポートpage_cleanersオプションは、複数のpage cleanerスレッドを設定して汚れたページのリフレッシュ効率を向上させることができます.innodb_を設定できます.undo_log_truncateなどのオプションは、不要なundo logを自動的に削除します.InnoDB read-onlyモードの性能を強化する.5.7では、一般的な表領域を作成できます.CREATE TABLESPACE tablespace_name ADD DATAFILE'file_name.ibd’ [FILE_BLOCK_SIZE = n] 3、SQL_MODEデフォルトでSTRICT_が有効TRANS_TABLESモード;対ONLY_FULL_GROUP_BYモードはより複雑な特性サポートを実現し、デフォルトでも有効になっている.他にもデフォルトで有効なsql modeにはNO_ENGINE_SUBSTITUTION. 5.6で10文字の長さのVARCHAR列に15文字を書き込むと、自動的に遮断され、警告が表示されますが、5.7ではエラーが直接投げ出されます.4、online操作の最適化、例えばbuffer poolの修正、インデックス名の修正(プライマリキー以外)、REPLICATION FILTERの修正、SLAVEスレッドを閉じることなくMASTERの修正など多くの特性.5、5.7でINFORMATION_SCHEMAの中の表の中でMySQLのシステムのパラメーター6を见て、1つの表の上で多くのトリガーを支持して、このようにして、もとはすでにトリガーの表がpt-oscを使うことを支持することができて7、オンラインのある接続に対して直接実行计画を见ることを支持して、例えばEXPLAIN FOR CONNECTION 1024、新しくlogを増加しますSyslogオプションは、MySQLログをシステムログファイルに印刷することができます9、MySQL 5.6以前は、クライアントCTRL+C後に直接終了しますMySQLクライアント、この点は気持ち悪いですが、5.7以降はクライアントを終了するのではなく、端末の現在の操作10、新しい比較的良い機能は、CREATE|ALTER TABLEの場合、あるテーブルにすでに列がある上で、新しい列を演算する:CREATE TABLE triangle(sidea DOUBLE、sideb DOUBLE、sidec DOUBLE AS(SQRT(sidea*sidea+sideb*sideb));INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8); mysql> SELECT * FROM triangle; +——-+——-+——————–+ | Sidea|sideb|sidec|+——-+——-+————————————-+||1|1.4142135623730951||3|4|5||6|8|10|+——-+——-+——————————-+————————-+11、マルチソースコピーをサポートし、複数のMASTERのデータを1つのインスタンスにまとめることができ、同じテーブルであれば、プライマリ・キーと唯一のインデックスが衝突するリスクがある.事前に計画を立てる必要がある.12、マルチスレッドコピーをサポートする.
ソース:http://blog.csdn.net/l106439814/article/details/50226007