MySQLアーキテクチャと製品基盤の概要

1.データベース製品の種類第
1世代のデータベースアーキテクチャ
-----リレーショナルデータベース時代(RDBMS)
代表的な製品:
クローズドソース:Oracle、MSSQL、DB2 ...
オープンソース:MySQL、PG、ClickHouse ..

第2世代のデータベースアーキテクチャ:並行性、ビジネスボリューム(ユーザーボリューム、データボリューム)の開発
-----リレーショナルデータベース時代(RDBMS)
+
----- NoSQL時代(SQL時代だけでなく)
代表的な製品:Memcache、Redis (キャッシュ)、MongoDBドキュメントデータベース、ES、Hadoop ..

第3世代データベースアーキテクチャ
-----分散/新しいデータベースアーキテクチャの時代(NewSQL時代)の
代表的な製品:
Aliシリーズ:PolarDB、OB
Pincap:TiDB

2.データベース業界の
データベースランキング情報に精通している
https://db-engines.com/en—>DB-Enginesランキング
ここに画像の説明を挿入

3. MySQL Enterprise Edition
E:Enterprise Edition(料金が適用されます)を選択します。 30日間の試用
版C:Community Edition(オープンソース)、5年間の無料サービスをダウンロードできます。

コミュニティエディションの選択:
5.6:GAバージョン5.6.34- 6月から12月の間に最大、できれば偶数バージョン
5.7:通常は最新のGAバージョン5.7.28を選択します(2019年9月27日)
8.0:通常は最新のGAバージョン8.0.18を選択します+(2019年9月22日)

バージョン5.62020、通常および拡張サービスは10月に廃止されます
5.7バージョン2021、通常サービスは1月に廃止されます

4. MySQL
コミュニティバージョンの公式Webサイトを取得します。https:
//www.mysql.com/downloads/ MySQL Community(GPL)ダウンロード»アーカイブのダウンロード»MySQL Community Server»製品バージョン(偶数の最新バージョンを選択してください) )オペレーティングシステム:linux-Generic

5.バイナリ展開の
ためのMySQL5.1環境の準備

# iptables -nL
# systemctl stop firewalld
# getenforce
# ping www.baidu.com

5.2MD5値を確認する

# md5sum  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
1daa30a32b99a92062f481bd3ef8694c    mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
对比官网中的MD5值: 1daa30a32b99a92062f481bd3ef8694c

5.3指定したディレクトリにソフトウェアをアップロードします

# cd /opt
上传软件包  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

5.4解凍してソフトリンクを作成する

# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql

5.5環境変数を変更する

# echo 'export PATH=/opt/mysql/bin/:$PATH' >>/etc/profile
# source /etc/profile  
# mysql -V
   mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper

5.6レガシー環境をクリーンアップする

# rpm -qa|grep mariadb
    mariadb-libs-5.5.60-1.el7_5.x86_64

用yum清理
# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64        

删掉/etc/my.cnf已有文件
# rm -rf /etc/my.cnf

5.7依存パッケージをインストールする

yum install -y libaio-devel

5.8関連するディレクトリを作成して承認する

# mkdir -p /data/3306                         -- 存放数据库数据
# useradd -M -s /sbin/nologin mysql           -- 创建管理用户
# chown -R mysql.mysql /data/3306  

5.9データベースを初期化する

/opt/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/3306

如果下载了5.6版本的初始化方式如下:
/opt/mysql/scripts/mysql_install_db   --user=mysql --basedir=/opt/mysql --datadir=/data/3306

5.10構成ファイルの準備
機能:
1。データベースの開始と作業に影響を与えます。
2.クライアント接続に影響します(ローカルサーバーで開始されます)

vim /etc/my.cnf 

[mysqld]
user=mysql
basedir=/opt/mysql
datadir=/data/3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

デフォルトの構成ファイルの読み取り順序

# mysqld --help --verbose|grep my.cnf
/etc/my.cnf    --->  /etc/mysql/my.cnf   --->  /usr/local/mysql/etc/my.cnf    --->  ~/.my.cnf

5.11起動スクリプトを準備する

# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld    
# systemctl start mysqld      # /etc/init.d/mysqld start
# systemctl enable mysqld
# systemctl status mysqld
# mysql 
需要设置管理员密码如下:
# mysqladmin password 123456

6 MySQLのアーキテクチャ
6.1 MySQLのC / Sモデルの仕事構造
クライアント:
組み込みコマンド:mysqlの、mysqldumpを、mysqladminは
サードパーティ製ツール:SQLyogは、Navicatは、ワークベンチ
API:PHP-mysqliの(phpMyAdminの)、簡易設定(workpress)

サーバー:
TCP / IP -h -Pソケット(IP +ポート)
Unixソケット-S

概要:クライアントコマンドまたはツールを使用して、ローカルUNIXソケットまたはIP + Portを介してサーバーmysqldに接続します。

6.2 MySQLインスタンス構造
MySQLインスタンス構造の構成:mysqldデーモン+マスタースレッド+ワーカースレッドスレッド(IO \ SQL \ Purge ...)+事前に割り当てられたメモリ構造

MySQL処理データ:例を通して—>データの処理
ここに画像の説明を挿入

プロセスとは何ですか?スレッドとは何ですか?
定義の違い:プロセスは独立した機能を持つプログラムであり、スレッドはプロセスのエンティティです。
機能の違い:プロセスはリソースの割り当てとスケジューリングの単位であり、スレッドはプロセスの実行単位です。

同じプロセス内の複数のスレッドを同時に実行できます。1つのスレッドで別のスレッドを作成およびキャンセルできます。リソースはプロセス間で共有できず、リソースはスレッド間で共有できます。各プログラム間のプロセスは互いに独立していますが、各プログラムのスレッドは互いにデータを共有しています。つまり、
1)プログラムには少なくとも1つのプロセスがあり、プロセスには少なくとも1つのスレッドがあります。

2)スレッドの分割スケールはプロセスの分割スケールよりも小さいため、マルチスレッドプログラムの同時実行性は高くなります。

3)また、プロセスは実行中に独立したメモリユニットを持ち、複数のスレッドがメモリを共有するため、プログラムの運用効率が大幅に向上します。

6.3MySQLコアプログラムの動作原理
6.3.1サーバーレイヤー/インスタンスレイヤー----> Linux OS
6.3.1.1コネクタ
接続プロトコル:tcp / ipおよびunixソケットソケット
ロード認証テーブル:ユーザー
パスワード検証は、パスワード検証スレッドを介して接続を生成します

6.3.1.2 SQLレイヤー
6.3.1.3管理ツール、プラグイン、mysqlshell(8.0以降)
6.3.2エンジンレイヤー/ストレージエンジンレイヤー---->ファイルシステム

ここに画像の説明を挿入
詳細については、WeChatパブリックアカウントをフォローしてください
ここに画像の説明を挿入

上記のコンテンツはoldguo先生によって教えられてい
ます。詳細については、ステーションBを参照してください:https ://www.bilibili.com/video/BV157411K7sf?from = search&seid = 2216971352526804506

おすすめ

転載: blog.csdn.net/weixin_45320660/article/details/114529170