MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

バージョン間でのコマンドの違い:

innodb ステータスを表示\G mysql-5.1
エンジン InnoDB ステータスを表示\G mysql-5.5

許可の付与について mysql-5.5 user@'%' には localhost が含まれていません

-----------------------------------------------------------------------

MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

1. 4.1 では、サブクエリのサポートが追加され、文字セットに UTF-8 が追加され、GROUP BY ステートメントに ROLLUP が追加され、mysql.user テーブルに優れた暗号化アルゴリズムが使用されます。

2. 5.0 では、ストアド プロシージャ、ビュー、カーソル、トリガー、XA トランザクションのサポートが追加され、INFORATION_SCHEMA システム データベースが追加されました。

3. 5.1 イベント スケジューラ、パーティショニング、プラガブル ストレージ エンジン API、行ベースのレプリケーション、およびグローバル レベルでの一般クエリ ログとスロー クエリ ログの動的変更のサポートが追加されました。

4. 5.5の新機能

1) デフォルトのストレージエンジンがInnoDBに変更されました

2) パフォーマンスとスケーラビリティの向上

a. デフォルトのスレッド同時実行性の向上 (innodb_thread_concurrency)

b. バックグラウンド入出力スレッド制御 (innodb_read_io_threads、innodb_write_io_threads)

c. メインスレッドの入出力レート制御(innodb_io_capacity)

d. オペレーティングシステムのメモリ割り当てプログラム使用制御 (innodb_use_sys_malloc)

e. 適応ハッシュ インデックス (ハッシュ インデックス) コントロールでは、ユーザーは適応ハッシュ機能をオフにすることができます。

f. 挿入バッファリング制御では、ユーザーは InnoDB の挿入バッファリング機能をオフにすることができます。

g. 高速ロック アルゴリズムによりスケーラビリティを向上します。InnoDB はプロキシ (POSIX) スレッドを使用しませんが、ネイティブの独立した操作を使用して相互排他と読み取り/書き込みロックを完了します。

h. 復元されたグループコミット

i. 回復パフォーマンスの向上

j. 複数のバッファプールの例

k. 複数のロールバック セグメント。以前のバージョンの InnoDB では、最大 1023 の同時操作を処理できました。MySQL 5.5 では、最大 128K の同時トランザクションを処理できるようになりました。

l. Linux システムには非同期入出力が備わっており、MySQL 5.5 データベース システムでは Linux システムの同時入出力要求の数も増加します。

m. 拡張変更バッファ: 削除バッファとクリアバッファを追加

n. ログシステムの相互排他性と単一フラッシュリストの相互排他性を改善しました

o. パージ プログラムの進行状況を改善します。MySQL 5.5 では、パージ操作スレッドは独立したスレッドであり、同時実行をサポートします。innodb_purge_treads 構成を使用できます。

p. トランザクションにおけるメタデータのロックを改善します。たとえば、トランザクション内のステートメントでテーブルをロックする必要がある場合、テーブルは以前のようにステートメントの終了時ではなく、トランザクションの終了時に解放されます。

3) 実用性の向上

a. 半同期レプリケーション

b. ハートビートのコピー

c. 自動リレーログ回復

d. サーバーごとのレプリケーションフィルタリング

e. レプリケーションスレーブ側でサポートされるデータ型変換

4) 管理性と効率性の向上

a. より高速なインデックス作成

b. 効率的なデータ圧縮

c. 大きなオブジェクトと可変長の列に効率的なストレージを提供する

d. INFORMATION_SCHEMA テーブルを追加しました。新しいテーブルは、InnoDB の圧縮とトランザクション ロックに関する詳細な情報を提供します。

5) ユーザビリティの向上

a. SIGNAL/RESIGNALの新しいSQL構文

b. 新しいテーブル/インデックスのパーティション分割オプション。 MySQL 5.5 では、テーブルとインデックスの RANG および LIST パーティション範囲が非整数列と日付に拡張され、複数の列でパーティション分割する機能が追加されました。

6) 検出と診断の改善

MySQL 5.5 では、実行中の MySQL 監視サーバーのパフォーマンスを監視するための新しいパフォーマンス アーキテクチャ (performancn_schema、P_S) が導入されています。

5. 5.6 の新機能

1) InnoDB では、多数のテーブルが開かれた場合にメモリ使用量が過剰になる問題を制限できるようになりました (ここで述べたような問題) (サードパーティのパッチが利用可能)

2)InnoDBのパフォーマンス強化。カーネル ミューテックスの分割、メイン スレッドからのフラッシュ操作の分離、複数の perge スレッド、大容量メモリの最適化など。

3) InnoDBのデッドロック情報はエラーログに記録され、簡単に分析できます。

4) MySQL 5.6 は遅延レプリケーションをサポートしており、スレーブとマスターが時間間隔を制御できるため、特殊な状況でのデータ復旧が容易になります。

5) テーブルパーティショニング機能の強化

6) MySQL の行レベルのレプリケーションが強化され、ディスク、メモリ、ネットワーク、その他のリソースのオーバーヘッドが削減されました (行レコードを決定できるフィールドのみが記録されます)

7) Binlogはクラッシュセーフティを実装する

8) マスター/スレーブレプリケーションデータの一貫性を高めるために、レプリケーションイベントにCRC32検証が使用されます。

9) log_bin_basename を追加しました (以前は変数に binlog の位置情報がなく、データベースの監視に不便でした)

要約する

上記は、MySQL 4.1/5.0/5.1/5.5/5.6 の主な違いです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。

以下もご興味があるかもしれません:
  • MySQL のエッセンシャルバージョンと通常バージョンの違いは何ですか?

<<:  Dockerデータストレージの概要

>>:  VUE と Canvas を使用して Thunder Fighter タイピング ゲームを実装する方法

推薦する

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

HTML要素のID属性とName属性の違い

今日、私は <a href="#13"></a> につい...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

MySQL テーブルスペースとは何ですか?

今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。...

ソースコードの観点からキープアライブコンポーネントのキャッシュ原理に答える

今日は、早速本題に入り、面接中に尋ねられた質問、つまりキープアライブ コンポーネントのキャッシュ原理...

MySQLの日付と時刻の間隔計算の分析例

この記事では、例を使用して、MySQL の日付と時刻の間隔計算について説明します。ご参考までに、詳細...

MySQL 8.0.18 のインストールと設定のグラフィックチュートリアル

学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...

Vueフィルターの詳細な説明

<本文> <div id="ルート"> <h2&...

MySQL シリーズ 6 のユーザーと認証

目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....

CSS3はシームレスなスクロールと手ぶれ防止を実現します

質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...

CentOS 7 で MySQL 5.7 をインストールして設定する

この記事では、以下の環境をテストします。 CentOS 7 64 ビット 最小 MySQL 5.7 ...

MySQL explain クエリ命令情報の取得原理と例

explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...

CSS3を使用してトランジションとアニメーション効果を実現する

JS アニメーションの代わりに CSS アニメーションを使用する必要があるのはなぜですか? Java...

CentOS 起動時にカーネルモジュール overlayfs 操作を自動的にロードする

CentOS でカーネル モジュールを自動的にロードするには、/etc/sysconfig/modu...