ホームページ >データベース >mysql チュートリアル >mysqlの5.6と5.7の違いは何ですか

mysqlの5.6と5.7の違いは何ですか

WBOY
WBOYオリジナル
2022-03-01 16:45:2614668ブラウズ

mysql の 5.6 と 5.7 の違い: 1. バージョン 5.7 は json 形式のデータを提供しますが、バージョン 5.6 は json バージョン データを提供しません; 2. バージョン 5.7 は複数のマスターと 1 つのスレーブをサポートしますが、バージョン 5.6 はサポートしません複数のマスターのサポート まず、バージョン 3 および 5.7 でデータを初期化する場合、データは bin ディレクトリにありますが、バージョン 5.6 ではスクリプト ディレクトリにあります。

mysqlの5.6と5.7の違いは何ですか

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql 5.6 と 5.7 の違いは何ですか?

1. コンパイルとインストールの違い

Mysql5.7 バージョンが更新された後、次のような多くの変更があります。 json などとして保存されており、インストール方法も変更されているため、BOOST ライブラリをインストールする必要があります。 mysqlの公式サイトのソースコードには、boostライブラリを含むソースコードとboostライブラリを含まないソースコードが含まれており、boostライブラリのソースコードがないものは別途boostをインストールする必要があります。

mysql5.7 は複数のマスターと 1 つのスレーブをサポートし、高可用性を実現するためのさまざまな方法を備えています

ソフトウェアをダウンロード

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

ブーストによる Mysql ソース コードのインストール

1. インストールの依存関係パッケージ

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel

2. コンパイルとインストール

cd /usr/local/mysql-5.7.20/
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make
make install

ブーストなしのMysqlソースコードのインストール

1.依存関係パッケージのインストール

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

2 .コンパイルしてインストール

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \
#开启BOOST库
-DDOWNLOAD_BOOST=1 \
#指定boost库位置
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 
make
make install

2. 初期認識時の違い

#【5.6版本初识化】
cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#【5.7版本初识化】这种初始化方式,默认密码在一个文件中
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

–initialize はランダムなパスワードを生成し、ファイルに書き込みます

–initialize-insecure は生成しませんランダムなパスワード

3. 関数と機能の違い

##セキュリティ##ユーザー テーブル mysql.user のプラグイン フィールドには、次の操作が許可されていません。空である必要があります。デフォルト値は、mysql_old_password ではなく、mysql_native_password です。古いパスワード形式はサポートされなくなりました。

パスワード有効期限メカニズムを追加します。有効期限が切れたらパスワードを変更する必要があります。そうしないと無効になるか、サンドボックスに入る可能性があります。モード;

パスワードの有効期限メカニズムを追加します。有効期限が切れたら変更する必要があります。パスワードを変更します。そうしないと無効になるか、サンドボックス モードに入る可能性があります。

は、よりシンプルな SSL セキュリティ アクセス構成を提供し、デフォルトの接続では SSL 暗号化が使用されます。

柔軟性

MySQL データベースは、バージョン 5.7.8 以降、JSON のサポートも提供します。

構造化データと非構造化データを混在して保存でき、リレーショナル データベースと非リレーショナル データベースの利点を同時に持つことができます

完全なトランザクション サポートを提供できます

生成された列これは MySQL 5.7 で導入された新機能です。いわゆる生成列とは、データベース内のこの列が他の列から計算されることを意味します。

使いやすさ

MySQL 5.7 より前では、ユーザーが間違った SQL ステートメントを入力して ctrl c を押した場合、SQL ステートメントの実行を「終了」できますが、現在のセッションも終了します。MySQL 5.7 では、この直感に反する側面が改善され、セッションを終了することはなくなりました。セッション。

MySQL 5.7 は実行中の SQL を説明できるため、DBA が実行に長い時間かかるステートメントを分析するのに非常に役立ちます。

sys スキーマは、MySQL 5.7.7 で導入されたシステム ライブラリです。これには、一連のビュー、関数、ストアド プロシージャが含まれています。このプロジェクトは、MySQL の使いやすさに焦点を当てています。

可用性

レプリケートされたフィルタリング ルールのオンライン設定では、MySQL を再起動する必要がなくなりました。SQL スレッドを停止するだけで済みます。変更が完了したら、SQL スレッドを開始します。

バッファ プール サイズをオンラインで変更します。

オンライン DDL MySQL 5.7 では、インデックスの名前変更と varchar のサイズの変更がサポートされています。以前のバージョンでは、これら 2 つの操作にはインデックスまたはテーブルの再構築が必要でした。

オンラインで GTID を有効にする: 以前のバージョンでは、オンラインで GTID を有効にすることがサポートされていなかったため、ユーザーが下位バージョンのデータベースを GTID をサポートするデータベース バージョンにアップグレードする場合は、まずデータベースを閉じてから、 GTID モードで起動するため、アップグレードが特に面倒になります。

パフォーマンス

一時テーブルのパフォーマンスが向上しました。

一時テーブルは現在のセッションでのみ表示されます

一時テーブルのライフサイクルは現在の接続です (MySQL が停止または再起動され、現在の接続は終了します)

読み取り専用トランザクションのパフォーマンスが向上します。

MySQL 5.7 は、読み取り専用トランザクションへのトランザクション ID の割り当ての回避、読み取り専用トランザクションへのロールバック セグメントの割り当ての回避、ロック競合の削減などにより、読み取り専用トランザクションのオーバーヘッドを最適化し、データベースの全体的なパフォーマンスを向上させます。 . .

-接続処理の高速化

MySQL 5.7 より前では、変数 (THD、VIO) の初期化操作は接続受信スレッドで完了していましたが、これらのタスクはワーカー スレッドに送信されるようになりました。接続受信スレッドの負荷を軽減し、接続処理速度を向上させます。この最適化は、短い接続を頻繁に確立するアプリケーションに非常に役立ちます。

レプリケーション パフォーマンスの向上 (マルチスレッド レプリケーション (マルチスレッド スレーブ、MTS と呼ばれる) のサポート)

MySQL のデフォルト構成は、ライブラリ レベルの並列レプリケーションです。 MySQL 5.7 機能の並列レプリケーションを最大限に活用するには、slave-Parallel-type を LOGICAL_CLOCK に設定する必要があります。

マルチソース レプリケーションのサポート (マルチソース レプリケーション)

厳密な変更

STRICT_TRANS_TABLES モードはデフォルトで有効になります。

より複雑な機能のサポートが ONLY_FULL_GROUP_BY モードに実装され、デフォルトでも有効になります。

その他の SQLデフォルトで有効になるモードには、NO_ENGINE_SUBSTITUTION が含まれます。

デフォルト パラメータの変更

デフォルトのバイナリ形式は ROW 形式に調整されます

binlog エラー後のデフォルトの動作は ABORT_SERVER に調整されます

前のオプション (binlog_error_action=IGNORE_ERROR) では、エラーが発生して binlog を書き込めない場合、mysql-server はエラーをエラーに記録します。 log そしてbinlog機能を強制的にオフにします。これにより、mysql-server はバイナリ ログを記録しないモードで実行を継続し、スレーブ ライブラリはメイン ライブラリのバイナリ ログを取得し続けることができなくなります。

mysql クラッシュ時の Binlog セキュリティはデフォルトで有効になっています。

デフォルトでslave_net_timeoutを減らします。

別のインストール

mysql_install_db は推奨されなくなりました。インスタンスの初期化を完了するには、これを mysqld --initialize に変更することをお勧めします。 datadir が指すターゲット ディレクトリにデータ ファイルがすでに存在する場合、[ERROR] Aborting;

初期化中に --initial-insecure が追加されると、空のパスワードを持つ root@localhost アカウントが作成されない場合、パスワード付きの root@localhost アカウントが作成され、パスワードはログエラー ログ ファイルに直接書き込まれます。新規ユーザーはログイン後すぐにパスワードを変更する必要があります。そうしないと、パスワードを変更できなくなります。彼らの仕事を続けてください。

推奨学習: mysql ビデオ チュートリアル

以上がmysqlの5.6と5.7の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。