ホームページ >データベース >mysql チュートリアル >MySQL の高度なナレッジ アーキテクチャの概要

MySQL の高度なナレッジ アーキテクチャの概要

coldplay.xixi
coldplay.xixi転載
2021-01-04 09:26:402446ブラウズ

#mysql ビデオ チュートリアルMySQL の高度な知識の構造を紹介するコラム

MySQL の高度なナレッジ アーキテクチャの概要

##推奨 (無料):

mysql ビデオ チュートリアル

1. MySQL の概要

概要

    MySQL は、スウェーデンの MySQL AB 社によって開発されたリレーショナル データベース管理システムであり、現在は Oracle に属しています。
  • MySQL は、すべてのデータを 1 つの大きなウェアハウスに入れるのではなく、異なるテーブルにデータを保存するリレーショナル データベース管理システムです。これにより、速度が向上し、柔軟性が向上します。
  • Mysql はオープンソースなので、追加料金を支払う必要はありません。
  • Mysql は大規模なデータベースをサポートしています。数千万件のレコードを含む大規模なデータベースを処理できます。
  • MySQL は標準の SQL データ言語形式を使用します。
  • Mysql は複数のシステムで使用でき、複数の言語をサポートします。これらのプログラミング言語には、C、C、Python、Java、Perl、PHP、Eiffel、Ruby、Tcl などが含まれます。
  • Mysql は、現在最も人気のある Web 開発言語である PHP を適切にサポートしています。
  • MySQL は、5,000 万件のレコードを含む大規模なデータベースとデータ ウェアハウスをサポートしています。32 ビット システム テーブル ファイルは最大 4 GB をサポートし、64 ビット システムは最大 4 GB のテーブル ファイルをサポートします。 8TB。
  • Mysql はカスタマイズ可能で、GPL プロトコルを採用しているため、ソース コードを変更して独自の Mysql システムを開発できます。
  • 高度な MySQL には知識が必要です
mysql カーネル
  • SQL 最適化包囲ライオン
  • mysql サーバー最適化
  • 各種パラメータ定数設定
  • クエリ文の最適化
  • マスター/スレーブレプリケーション
  • ソフトウェアとハ​​ードウェアのアップグレード
  • 障害復旧バックアップ
  • SQL プログラミング
  • mysql を完全に最適化するには、深い基盤が必要です。大企業には、上記のコードを作成する専任の DBA もいます。

## 2. MySQL Linux版のインストール

今回はMySQL 5.5をインストールしました。インストール環境はCentOS 6.5です。
  • バージョンのダウンロードアドレス 公式サイトのダウンロードアドレス
  • Download
      MySQL-Client
    • および MySQL-Serverhttp://downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5 。 16-1.rhel4.i386.rpm
    • http://downloads.skysql.com/archives/mysql-5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm
    • http://downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16-1.rhel4.i386.rpm
    現在のシステムがインストールされた MySQL
  • Query コマンド:
      rpm -qa|grep -i mysql
    • 削除コマンド:
    • rpm -e --nodeps RPM パッケージの完全名
    mysql サーバーをインストールします (
  • ヒントに注意してください
  • )

    MySQL の高度なナレッジ アーキテクチャの概要MySQL の高度なナレッジ アーキテクチャの概要

      Setパスワードのヒント
    #mysql クライアントをインストールします
  • MySQL のインストール中に作成された mysql ユーザーと mysql グループを表示します
    • # cat /etc /passwd | grep mysql
    • cat /etc/group | grep mysql
    mysql サービスの開始と停止
  • MySQL の開始および停止ステータスの表示:
      # ps -ef | grep mysql
    • 操作の開始および停止:
      • # /etc/init.d/ mysql start
      • # /etc/init.d/mysql stop
      • or
      • #service mysql start
      • service mysql stop
      MySQL 自動開始サービスを設定します
    • ##chkconfig mysql on
        自動起動を設定する
      • # chkconfig --list | grep mysql
      • 自動起動が設定されているかどうかを確認する
      • #設定ファイルの場所を変更する
    • 現在の
    • 5.5 バージョンをコピーします
        :
      • cp /usr/share/mysql/my-huge.cnf /etc/my.cnf5.6 version
      • cp /usr/share/mysql/my-default.cnf /etc/my.cnf
      • 文字セットとデータ ストレージ パスを変更する
    • 文字セットを表示
      • 'character%' のような変数を表示;
        • '%char%' のような変数を表示;

        • MySQL の高度なナレッジ アーキテクチャの概要

      #### ###########キャラクターセット###
      • デフォルトではクライアント、サーバーともにlatin1を使用しているため文字化けします。
      • 文字セットを変更し、以前にコピーした構成ファイルを変更します。 (詳細なフォローアップ コード)
      • MySQL のインストール場所
        • linux の下にあるインストール ディレクトリを表示しますps -ef|grep mysql
    ##/var/lib/mysql/Mysql データベース ファイルのストレージ パス /usr/share/mysql設定ファイル ディレクトリmysql.server コマンドおよび設定ファイル/usr/bin関連コマンド ディレクトリmysqladmin mysqldump およびその他のコマンド/etc/init.d/mysql関連スクリプトの開始と停止

    MySQL の高度なナレッジ アーキテクチャの概要

    #MySQL のインストール場所

    [client]
    #password = your_password
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    
    # 这一行需要设置字符集
    default-character-set=utf8
     
    # The MySQL server
    [mysqld]
    port = 3306
    
    # 还有这三行
    character_set_server=utf8
    character_set_client=utf8
    collation-server=utf8_general_ci
    
    socket = /var/lib/mysql/mysql.sock
    skip-external-locking
    key_buffer_size = 384M
    max_allowed_packet = 1M
    table_open_cache = 512
    sort_buffer_size = 2M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    myisam_sort_buffer_size = 64M
    thread_cache_size = 8
    query_cache_size = 32M
    # Try number of CPU's*2 for thread_concurrency
    thread_concurrency = 8
     
    [mysql]
    no-auto-rehash
    # 还有这一行
    default-character-set=utf8

    3. Mysql 設定ファイル

    メイン設定ファイル
      バイナリログ log-bin
      • マスター/スレーブレプリケーション

    MySQL の高度なナレッジ アーキテクチャの概要##エラー ログ log-error

      デフォルトではオフになっており、重大な警告やエラー メッセージ、各起動とシャットダウンの詳細情報などが記録されます。
      • クエリ ログ ログ
    • デフォルトではオフになっており、クエリ SQL ステートメントが記録されます。オンにすると、記録されるため、mysql の全体的なパフォーマンスが低下します。ログはシステム リソースも消費します
      • データ ファイル
    • 2 つのシステム
      • windows
        • #D: では多くのライブラリを選択できます。 \devSoft\MySQLServer5.5\data directory
          • Linux:
        • デフォルト パス
        • #cd /var/lib/mysql/
          • #現在のシステム内のすべてのライブラリを確認してから、#ls -1F | grep ^d
          ##frm file# に移動します。 ##: ストア テーブル構造
        **myd ファイル: ** ストア テーブル データ
      • ##**myi ファイル: ** ストア テーブル インデックス
      • 設定方法
      • Windows: my.ini ファイル
      • Linux: /etc/my.cnf ファイル
      • 4. Mysql の概要論理アーキテクチャ
      • 全体概要
    • 他のデータベースと比較すると、MySQL は少し異なり、そのアーキテクチャはさまざまなシナリオに適用でき、適切に動作します。主にストレージ エンジンのアーキテクチャに反映されています。
    プラグイン ストレージ エンジン アーキテクチャは、クエリ処理を他のシステム タスクやデータの保存と抽出から分離します

    。このアーキテクチャにより、ビジネス ニーズと実際のニーズに基づいて適切なストレージ エンジンを選択できます。

    • #1. 接続層

      MySQL の高度なナレッジ アーキテクチャの概要最上位層は、ローカル ソケット通信や大規模な通信など、いくつかのクライアントと接続サービスです。 tcp/ip に似た通信のほとんどは、クライアント/サーバー ツールに基づいて実装されます。主に、いくつかの接続処理、認可認証、および関連するセキュリティ ソリューションを完了します。スレッド プールの概念がこの層に導入され、認証を通じて安全にアクセスするクライアントにスレッドを提供します。 SSL ベースの安全なリンクもこの層に実装できます。また、サーバーは、安全にアクセスする各クライアントに対してサーバーが持つ操作権限を検証します。

    • 2. サービス層
      • 第 2 層のアーキテクチャは主に、SQL インターフェイスなどのコア サービス機能のほとんどを完成させ、キャッシュされたクエリを完成させます。 . 、SQL の分析と最適化、および一部の組み込み関数の実行。プロシージャ、関数など、すべてのクロスストレージ エンジン機能もこの層に実装されます。この層では、サーバーはクエリを解析して対応する内部解析ツリーを作成し、クエリ テーブルの順序の決定、インデックスを使用するかどうかなどの対応する最適化を完了し、最終的に対応する実行操作を生成します。それが select ステートメントの場合、サーバーは内部キャッシュにもクエリを実行します。キャッシュ領域が十分に大きい場合、多数の読み取り操作を処理する環境でシステムのパフォーマンスを大幅に向上させることができます。
      • 3. エンジン層
        • ストレージ エンジン層、ストレージ エンジンは、MySQL でのデータの保存と抽出を実際に担当します。 API を介してサーバーと通信します。 ストレージ エンジンと通信します。ストレージエンジンが異なれば機能も異なるため、実際のニーズに応じて選択できます。 MyISAM と InnoDB については後ほど紹介します
      • 4. ストレージ層
        • データ ストレージ層は主に、生のファイル システムで実行されるデータを保存します。上記のデバイスを選択し、ストレージ エンジンとの対話を完了します。
      • #クエリの説明
        • まず、mysql のクエリ処理は大まかに次のとおりです。 mysql クライアント プロトコルを介して mysql サーバーとの接続を確立し、クエリ ステートメントを送信し、最初にクエリ キャッシュを確認し、ヒットした場合は結果を直接返し、そうでない場合はステートメントの解析を実行します
      • 一連の前処理があり、ステートメントが正しく記述されているかどうかを確認してから、クエリの最適化(インデックス スキャンを使用するかどうか、不可能な条件の場合は早期終了するなど)、クエリ プランの生成、クエリ エンジンの起動、クエリの実行の開始など、基盤となるストレージ エンジンから API を呼び出してデータを取得し、最終的にそれをクライアントに返します。データの保存方法とデータの取得方法はすべてストレージ エンジンに関係します。
    • 次に、mysql はデフォルトで BTREE インデックスを使用します。一般的な方向としては、SQL をどのように変更しても、少なくとも現時点では、mysql はテーブル内で最大 1 つのインデックスのみを使用します。
      #5. Mysql ストレージ エンジン
      • コマンドの表示
      • 現在の MySQL が提供するストレージ エンジンの表示
      • mysql> エンジンの表示;

    MySQL の現在のデフォルト ストレージ エンジンを確認します:
      • 「%storage_engine% 」のような変数を表示します。
        #デフォルトのストレージ エンジン
    • MyISAM および InnoDB

      MySQL の高度なナレッジ アーキテクチャの概要MySQL の高度なナレッジ アーキテクチャの概要

      2 つのエンジンの比較

    • アリババとタオバオはどちらを使用すべきですか?
      • Percona は MySQL データベース サーバーを改良し、機能が向上しています。 MySQL は大幅に改善されました。このバージョンでは、高負荷条件下での InnoDB のパフォーマンスが向上し、DBA に非常に便利なパフォーマンス診断ツールが提供され、サーバーの動作を制御するためのパラメーターとコマンドが追加されました。
      • 同社は、xtradb という新しいストレージ エンジンを作成しました。これは、innodb を完全に置き換えることができ、パフォーマンスが向上しました。より良い仕事をするために、
      • Alibaba の mysql データベースのほとんどは、実際には percona のプロトタイプを使用し、それを変更します。
    パス 説明 備考
    ##/var/lib/mysql/atguigu.cloud.pid

以上がMySQL の高度なナレッジ アーキテクチャの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjianshu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。