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 タイピング ゲームを実装する方法

推薦する

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

MySQL 構成 SSL マスタースレーブ レプリケーション

MySQL5.6 SSLファイルの作成方法公式ドキュメント: https://dev.mysql.c...

docker windows10共有ディレクトリのマウント失敗の解決策

原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...

vue3 のストアを使用してスクロール位置を記録する例

目次全体的な効果コンテナのスクロールイベントをリッスンするストア内の構成ページが戻るときのスクロール...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...

Vue ルーター vue-router 詳細説明ガイド

中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...

ハイパーリンクアイコンの仕様: 記事の読みやすさを向上

1. ハイパーリンクアイコンの仕様とは?<br />ハイパーリンクアイコンの仕様は、「C...

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

1. 原因公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

15行のCSSコードがAppleデバイスをクラッシュさせる可能性があり、最新のiOS 12も例外ではない

たった15行のCSSでiPhoneがクラッシュするWire のセキュリティ研究者 Sabri Had...

パーティショニングを使用して数十億のデータに対する MySQL データ処理を最適化する方法

MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...

MySQL のストアド プロシージャを使用して 100 万件のレコードをすばやく生成する方法

序文テストを行う際、大量のデータによる負荷に耐えるプロジェクトの能力をテストするために、通常はテスト...

Vue で手ぶれ補正を実装するためのサンプルコード

手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...

Vue+tsx のスロット使用の問題が置き換えられない

目次序文問題を見つける解決する追記序文最近、 UIコンポーネントを作成する予定で、 vue 2.xと...