ホームページ  >  記事  >  データベース  >  データベース アーキテクチャの概要

データベース アーキテクチャの概要

零下一度
零下一度オリジナル
2017-05-05 16:32:161541ブラウズ

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 ビット システムは最大 8 TB のテーブル ファイルをサポートします。

  • Mysql はカスタマイズ可能で、GPL プロトコルを採用しており、ソースコードを変更して独自の Mysql システムを開発できます。

高度なMySQLには知識が必要です
  • mysqlカーネル

  • SQL最適化包囲ライオン

  • MySQLサーバーの最適化

  • 各種パラメータ定数設定

  • クエリステートメントの最適化

  • マスター-スレーブ レプリケーション

  • ソフトウェアとハ​​ードウェアのアップグレード

  • 災害復旧とバックアップ

  • SQL プログラミング

  • 大企業では、上記の内容を記述するための専任の DBA さえも必要とします

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

  • 今回はMySQL 5.5をインストールし、インストール環境はCentOS 6.5です

  • バージョンダウンロードアドレス公式サイトダウンロードアドレス

    • download

      MySQL-Clientおよび MySQL-Server

    • downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql - 5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16-1.rhel4.i386.rpm

  • MySQL が現在のシステムにインストールされているかどうかを確認します

    • クエリ コマンド: rpm -qa|grep -i mysql

      rpm -qa|grep -i mysql

    • 删除命令:  rpm -e --nodeps RPM包全名

  • 安装mysql服务端(注意提示)

    • データベース アーキテクチャの概要

      设置密码提示

  • 安装mysql客户端

  • 查看MySQL安装时创建的mysql用户和mysql组

    • # cat /etc/passwd | grep mysql

    • # cat /etc/group | grep mysql

  • mysql服务的启+停

    • 查看字符集

    • 修改字符集,修改之前copy 的配置文件。(详细后续代码)

    • MySQL的安装位置

    • show variables like 'character%';

    • show variables like '%char%';

    • データベース アーキテクチャの概要

      字符集

    • 默认的是客户端和服务器都用了latin1,所以会乱码。

    • 在linux下查看安装目录 ps -ef|grep mysql

    • 拷贝当前5.5版本cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

    • 5.6版本  cp /usr/share/mysql/my-default.cnf /etc/my.cnf

    • #chkconfig mysql on   设置自动启动

    • # chkconfig --list | grep mysql   检查是否设置了自动启动

    • # /etc/init.d/mysql start

    • # /etc/init.d/mysql stop

    • 或者

    • #service mysql start

    • #service mysql stop

    • 查看MySQL启停状态:  # ps -ef | grep mysql

    • 削除コマンド: rpm -e - -nodeps RPM パッケージの完全名
    • mysqlサーバーをインストールします(

      ヒントに注意してください

      )
    • データベース アーキテクチャの概要

    • パスワードプロンプトを設定します

    • 🎜🎜mysql クライアントをインストールします🎜 🎜🎜🎜 MySQL のインストール中に作成された mysql ユーザーと mysql グループを表示します🎜🎜🎜🎜# cat /etc/passwd | grep mysql🎜🎜🎜🎜# cat /etc/group | mysql code>🎜🎜🎜🎜🎜mysql サービスの開始と停止🎜🎜🎜🎜🎜文字セットの表示🎜🎜🎜🎜 文字セットを変更し、以前にコピーした設定ファイルを変更します。 (以降のコードの詳細) 🎜🎜🎜🎜MySQL のインストール場所🎜🎜🎜🎜show variables like 'character%';🎜🎜🎜🎜show variables like '%char%'; コード>🎜🎜🎜

      データベース アーキテクチャの概要🎜

      文字セット🎜🎜🎜🎜デフォルトではクライアント、サーバーともにlatin1を使用しているため、文字化けが発生します。 🎜🎜🎜🎜Linux ps -ef|grep mysql でインストール ディレクトリを表示します🎜🎜🎜🎜現在の 🎜5.5 バージョンをコピーします🎜: cp /usr/share/mysql/my-huge。 cnf /etc/my.cnf🎜🎜🎜🎜🎜5.6 バージョン🎜 cp /usr/share/mysql/my-default.cnf /etc/my.cnf🎜🎜🎜🎜#chkconfig mysql on 自動起動を設定します🎜🎜🎜🎜# chkconfig --list grep mysql 自動起動が設定されているか確認します🎜🎜🎜🎜# /etc/init . d/mysql start🎜🎜🎜🎜# /etc/init.d/mysql stop🎜🎜🎜🎜 または 🎜🎜🎜🎜#service mysql start 🎜 🎜🎜#service mysql stop🎜🎜🎜🎜MySQL の開始および停止ステータスを表示する: # ps -ef | grep mysql🎜🎜🎜🎜 開始および停止操作: 🎜 🎜🎜🎜 MySQL 自己開始サービスをセットアップする🎜🎜🎜🎜 設定ファイルの場所を変更する🎜🎜🎜🎜 文字セットとデータストレージパスを変更する🎜

パス 説明 備考
/var/lib/mysql/ mysqlデータベースファイルの保存パス /var/lib/mysql/atguigu。クラウド.pid
/usr/share/mysql 設定ファイルディレクトリ mysql.serverコマンドと設定ファイル
/usr/bin 関連コマンドディレクトリ mysqldumpとその他​​のコマンド
/など/init .d/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
  • マスタースレーブレプリケーション
    • データベース アーキテクチャの概要


    • エラーログ log-error
  • はデフォルトでオフになっており、重大な警告やエラーメッセージ、各起動とシャットダウンの詳細情報などが記録されます。
    • クエリ ログ ログ
  • はデフォルトでオフになっており、オンにすると、ログの記録によりシステム リソースも消費されるため、mysql の全体的なパフォーマンスが低下します
    • データファイル
  • windows
    • Linux:
    • D:devSoftMySQLServer5.5dataディレクトリ 多くのライブラリを選択できます
    • デフォルトパス #cd /var/lib/mysql/ code>
    • #cd /var/lib/mysql/

    • 看看当前系统中的全部库后再进去 #ls -1F | grep ^d 現在のシステム内のすべてのライブラリを確認してから、#ls -1F grep ^d

    • 2つのシステム

    • frmファイルに移動しますテーブル構造

    • myd ファイル: テーブルデータの保存

    • myi ファイル: テーブルインデックスの保存

  • 設定方法

    • Windows: my.ini ファイル

    • Linux : /etc/my.cnf ファイル

4. MySQL 論理アーキテクチャの紹介

全体概要
  • 他のデータベースと比較すると、MySQL のアーキテクチャは、いくつかのデータベースに適用でき、優れた役割を果たします。さまざまなシナリオ。主にストレージ エンジンのアーキテクチャに反映されているプラ​​グイン ストレージ エンジン アーキテクチャは、クエリ処理を他のシステム タスクやデータの保存と抽出から分離します。このアーキテクチャにより、ビジネス ニーズと実際のニーズに基づいて適切なストレージ エンジンを選択できます。

    • データ ストレージ レイヤーは主に、raw デバイス上で実行されているファイル システムにデータを保存し、ストレージ エンジンとの対話を完了します。
    • ストレージ エンジン層。ストレージ エンジンは、MySQL でのデータの保存と取得を担当します。サーバーは API を介してストレージ エンジンと通信します。ストレージエンジンが異なれば機能も異なるため、実際のニーズに応じて選択できます。 MyISAM と InnoDB は後で紹介します
    • 第 2 層のアーキテクチャは主に、SQL インターフェイスなどのほとんどのコア サービス機能を完成させ、キャッシュされたクエリ、SQL 分析と最適化、およびいくつかの組み込み関数の実行を完了します。プロシージャ、関数など、すべてのクロスストレージ エンジン機能もこの層に実装されます。この層では、サーバーはクエリを解析して対応する内部解析ツリーを作成し、クエリ テーブルの順序の決定、インデックスを使用するかどうかなどの対応する最適化を完了し、最終的に対応する実行操作を生成します。それが select ステートメントの場合、サーバーは内部キャッシュにもクエリを実行します。キャッシュ領域が十分に大きい場合、多数の読み取り操作を処理する環境でシステムのパフォーマンスを大幅に向上させることができます。
    • 最上位層は、ローカル Sock 通信や、クライアント/サーバー ツールに基づくほとんどの tcp/ip に似た通信を含む、いくつかのクライアント サービスと接続サービスです。主に、いくつかの接続処理、認可認証、および関連するセキュリティ ソリューションを完了します。スレッド プールの概念がこの層に導入され、認証を通じて安全にアクセスするクライアントにスレッドを提供します。 SSL ベースの安全なリンクもこの層に実装できます。また、サーバーは、安全にアクセスする各クライアントに対してサーバーが持つ操作権限を検証します。
    • データベース アーキテクチャの概要


    • 1. サービス層

    • 3.
    • 4. ストレージ層
    • クエリの手順
    • まず、mysql クエリのプロセスは大まかに次のとおりです:

mysql クライアントは、プロトコルを通じて mysql サーバーとの接続を確立し、クエリ ステートメントを送信し、最初にクエリ キャッシュを確認します。ヒットした場合は結果を直接返します。そうでない場合は、ステートメントの解析
  • には、ステートメントが正しく記述されているかどうかのチェックなどの一連の前処理があり、クエリの最適化 (インデックス スキャンを使用するかどうかなど)これは不可能な条件です。早期に終了します)、クエリ プランを生成します。その後、クエリ エンジンが起動し、クエリの実行を開始し、基礎となるストレージ エンジンから API を呼び出してデータを取得し、最後にデータをクライアントに返します。データの保存方法とデータの取得方法はすべてストレージ エンジンに関係します。

  • そして、mysql はデフォルトで BTREE インデックスを使用し、一般的な方向としては、SQL をどのようにいじっても、少なくとも現時点では、mysql はテーブル内で最大 1 つのインデックスのみを使用することになります。

5 /code>

  • 現在の MySQL が提供するストレージ エンジンを確認してください

    • MySQL の現在のデフォルトのストレージ エンジンを確認してください:

      show variables like '%storage_engine%';

    • mysql> show engines;

    • 查看当前的MySQL 提供什么存储引擎

    • 看你的 MySQL 当前默认的存储引擎:

    • データベース アーキテクチャの概要

      默认的存储引擎

  • MyISAMInnoDB

    • データベース アーキテクチャの概要

      两种引擎对比

  • 阿里巴巴、淘宝用哪个

    • データベース アーキテクチャの概要


    • Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

    • 该公司新建了一款存储引擎叫xtradb完全可以替代innodb

      データベース アーキテクチャの概要

      デフォルトのストレージ エンジン

    • MyISAM
    InnoDB

    データベース アーキテクチャの概要

    2 つのエンジンの比較

    Alibaba と Taobao の場合、どちら

データベース アーキテクチャの概要
🎜


🎜🎜🎜🎜Percona は MySQL データベース サーバー用に改良されており、MySQL と比較して機能とパフォーマンスが大幅に向上しています。このバージョンでは、高負荷条件下での InnoDB のパフォーマンスが向上し、DBA に非常に便利なパフォーマンス診断ツールが提供され、サーバーの動作を制御するためのパラメーターとコマンドが追加されました。 🎜🎜🎜🎜同社は、xtradb🎜 と呼ばれる新しいストレージ エンジンを作成しました。これは、innodb🎜 を完全に置き換えることができ、より優れたパフォーマンスと同時実行性を実現します。 🎜🎜🎜🎜アリババの mysql データベースのほとんどは、実際には、変更を加えた percona のプロトタイプを使用しています。 🎜🎜🎜🎜【関連する推奨事項】🎜🎜1. 🎜無料のmysqlオンラインビデオチュートリアル🎜🎜🎜2. 🎜MySQLの最新マニュアルチュートリアル🎜🎜🎜3. 🎜ブール教育ヤンシバmysql入門ビデオチュートリアル🎜🎜🎜

以上がデータベース アーキテクチャの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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