MySQLのサブデータベースとサブテーブルの詳細説明(7)

♥️作者: Xiao Liu at Station C

♥️個人ホームページ:  Xiao Liu のホームページ 

♥️努力は必ずしも報われるとは限りませんが、必ず得るものはあります。より良い人生を目指して一緒に頑張りましょう!

♥️ 2 年間で要約された運用とメンテナンスの経験と、Cisco シミュレータのネットワーク実験チュートリアルの完全なセットを学びます。コラム:クラウドコンピューティング技術

♥️Xiao Liu のプライベート メッセージは気軽に尋ねることができます。知っている限り、ケチることはありません。あなたと私に会わせてくれて CSDN に感謝します!

序文

前章ではMySQLについてお話しました -サブデータベースとサブテーブルの詳細解説(6)

目次

5.3.7 文字列ハッシュ解析アルゴリズム

1 はじめに

 2). 構成

 3). テスト

5.3.8 日別のシャーディングアルゴリズム

1 はじめに

 2). 構成

 3). テスト

5.3.9 自然な月のシャーディング

1 はじめに

編集

 2). 構成

 3). テスト

6 MyCat の管理と監視

6.1 MyCatの原理

6.2 MyCat の管理

6.3 マイキャットアイ

 6.3.1 はじめに

6.3.2 インストール

6.3.3 アクセス

 6.3.4 設定

 6.3.5 テスト

A. パフォーマンスの監視

 B. 物理ノード

 C. SQL 統計

編集

 D. SQL テーブル分析

 E. SQL監視

編集

 F. 高頻度 SQL


5.3.7文字列ハッシュ解析アルゴリズム

1).はじめに

string 内の指定された位置にある部分文字列をインターセプトし ハッシュアルゴリズム を実行して 、断片化を計算します。
 2).構成
schema.xmlの論理テーブル構成 :
<!-- 字符串hash解析算法 -->
<table name="tb_strhash" dataNode="dn4,dn5" rule="sharding-by-stringhash" />
schema.xmlのデータノード構成 :
<dataNode name="dn4" dataHost="dhost1" database="itcast" />
<dataNode name="dn5" dataHost="dhost2" database="itcast" />
rules.xml でのフラグメンテーション ルールの設定:
<tableRule name="sharding-by-stringhash">
<rule>
<columns>name</columns>
<algorithm>sharding-by-stringhash</algorithm>
</rule>
</tableRule>
<function name="sharding-by-stringhash"
class="io.mycat.route.function.PartitionByString">
<property name="partitionLength">512</property> <!-- zero-based -->
<property name="partitionCount">2</property>
<property name="hashSlice">0:2</property>
</function>
断片化ルール属性の意味:

 説明例:

 3).テスト
構成が完了したら、 MyCatを再起動し mycat のコマンド ラインで次の SQLを実行して テーブルを作成し、データを挿入し、データの分散を確認します。
 
create table tb_strhash(
name varchar(20) primary key,
content varchar(100)
)engine=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO tb_strhash (name,content) VALUES('T1001', UUID());
INSERT INTO tb_strhash (name,content) VALUES('ROSE', UUID());
INSERT INTO tb_strhash (name,content) VALUES('JERRY', UUID());
INSERT INTO tb_strhash (name,content) VALUES('CRISTINA', UUID());
INSERT INTO tb_strhash (name,content) VALUES('TOMCAT', UUID());

5.3.8日別のシャーディングアルゴリズム

1).はじめに
日付と対応する期間に応じたシャード。
 2).構成
schema.xmlの論理テーブル構成 :
<!-- 按天分片 -->
<table name="tb_datepart" dataNode="dn4,dn5,dn6" rule="sharding-by-date" />
schema.xmlのデータノード構成 :
<dataNode name="dn4" dataHost="dhost1" database="itcast" />
<dataNode name="dn5" dataHost="dhost2" database="itcast" />
<dataNode name="dn6" dataHost="dhost3" database="itcast" />
rules.xml でのフラグメンテーション ルールの設定:
<tableRule name="sharding-by-date">
<rule>
<columns>create_time</columns>
<algorithm>sharding-by-date</algorithm>
</rule>
</tableRule>
<function name="sharding-by-date"
class="io.mycat.route.function.PartitionByDate">
<property name="dateFormat">yyyy-MM-dd</property>
<property name="sBeginDate">2022-01-01</property>
<property name="sEndDate">2022-01-30</property>
<property name="sPartionDay">10</property>
</function>
<!--
从开始时间开始,每10天为一个分片,到达结束时间之后,会重复开始分片插入
配置表的 dataNode 的分片,必须和分片规则数量一致,例如 2022-01-01 到 2022-12-31 ,每
10天一个分片,一共需要37个分片。
-->
断片化ルール属性の意味:
 3).テスト
構成が完了したら、 MyCatを再起動し mycat のコマンド ラインで次の SQLを実行して テーブルを作成し、データを挿入し、データの分散を確認します。
create table tb_datepart(
id bigint not null comment 'ID' primary key,
name varchar(100) null comment '姓名',
create_time date null
);
insert into tb_datepart(id,name ,create_time) values(1,'Tom','2022-01-01');
insert into tb_datepart(id,name ,create_time) values(2,'Cat','2022-01-10');
insert into tb_datepart(id,name ,create_time) values(3,'Rose','2022-01-11');
insert into tb_datepart(id,name ,create_time) values(4,'Coco','2022-01-20');
insert into tb_datepart(id,name ,create_time) values(5,'Rose2','2022-01-21');
insert into tb_datepart(id,name ,create_time) values(6,'Coco2','2022-01-30');
insert into tb_datepart(id,name ,create_time) values(7,'Coco3','2022-01-31');

5.3.9自然な月のシャーディング

1).はじめに
使用シナリオは月ごとにシャードすることであり 各自然月がシャードになります。
 2).構成
schema.xmlの論理テーブル構成 :
<!-- 按自然月分片 -->
<table name="tb_monthpart" dataNode="dn4,dn5,dn6" rule="sharding-by-month" /> 
schema.xmlのデータノード構成 :
<dataNode name="dn4" dataHost="dhost1" database="itcast" />
<dataNode name="dn5" dataHost="dhost2" database="itcast" />
<dataNode name="dn6" dataHost="dhost3" database="itcast" />
rules.xml でのフラグメンテーション ルールの設定:   
<tableRule name="sharding-by-month">
<rule>
<columns>create_time</columns>
<algorithm>partbymonth</algorithm>
</rule>
</tableRule>
<function name="partbymonth" class="io.mycat.route.function.PartitionByMonth">
<property name="dateFormat">yyyy-MM-dd</property>
<property name="sBeginDate">2022-01-01</property>
<property name="sEndDate">2022-03-31</property>
</function>
<!--
从开始时间开始,一个月为一个分片,到达结束时间之后,会重复开始分片插入
配置表的 dataNode 的分片,必须和分片规则数量一致,例如 2022-01-01 到 2022-12-31 ,一
共需要12个分片。
-->
     
断片化ルール属性の意味:
 3).テスト
構成が完了したら、 MyCatを再起動し mycat のコマンド ラインで次の SQLを実行して テーブルを作成し、データを挿入し、データの分散を確認します。
create table tb_monthpart(
id bigint not null comment 'ID' primary key,
name varchar(100) null comment '姓名',
create_time date null
);
insert into tb_monthpart(id,name ,create_time) values(1,'Tom','2022-01-01');
insert into tb_monthpart(id,name ,create_time) values(2,'Cat','2022-01-10');
insert into tb_monthpart(id,name ,create_time) values(3,'Rose','2022-01-31');
insert into tb_monthpart(id,name ,create_time) values(4,'Coco','2022-02-20');
insert into tb_monthpart(id,name ,create_time) values(5,'Rose2','2022-02-25');
insert into tb_monthpart(id,name ,create_time) values(6,'Coco2','2022-03-10');
insert into tb_monthpart(id,name ,create_time) values(7,'Coco3','2022-03-31');
insert into tb_monthpart(id,name ,create_time) values(8,'Coco4','2022-04-10');
insert into tb_monthpart(id,name ,create_time) values(9,'Coco5','2022-04-30');

6 MyCat の管理と監視

6.1 MyCatの原理

 MyCatでは、 SQLステートメントを実行するときに、 MyCat はSQL解析、断片化分析、ルーティング分析、読み書き分離分析などの操作を実行する必要があり、最終的に現在のSQLステートメントをどの(またはどの)にルーティングするかを決定します。ノードデータベースでは、データベースがデータを実行した後、返された結果がある場合はMyCatに結果を返し、最後にMyCatで結果のマージ、集計処理、ソート処理、ページング処理およびその他の操作を実行する必要があります。そして最後に Return結果はクライアントに。

MyCat の使用 中、 MyCat は 管理および監視プラットフォーム MyCat-Web ( MyCat-eye ) も公式に提供します。Mycat-web は、 Mycat の視覚的な運用とメンテナンスのための管理および監視プラットフォーム であり、 Mycatの監視のギャップを補います。Mycat が統計タスクと構成管理タスクを共有できるように支援します。Mycat-web では、複数のノードを管理できる構成センターとしてZooKeeperを導入しています。Mycat-web は主にMycatのトラフィック、接続、アクティブなスレッド、メモリを管理および監視します。IPホワイトリストや電子メールアラームなどのモジュールがあり、 SQLをカウントし、遅いSQLや高頻度のSQLを分析することもできますSQLを最適化するための基礎を提供します

6.2 MyCatの管理

Mycat は デフォルトで2 つのポート を開きますが、これは server.xmlで変更できます。
8066 データ アクセス ポート、つまり DML および DDL 操作用。
9066データベース管理ポート 。mycatサービス管理制御機能 であり、 mycatのクラスター全体のステータスを管理するために使用されます。
MyCat の管理コンソールに接続するには:

mysql -h 192.168.200.210 -p 9066 -uroot -p123456

6.3 マイキャットアイ

 6.3.1はじめに

Mycat-web (Mycat-eye) は mycat-serverの監視サービス であり、その機能は mycat-serverの使用に限定されません。
使用。 JDBC 接続 を通じて Mycat Mysql を監視し CPU 内部監視します
ストレージ、ネットワーク、ディスク。

Mycat-eye は 動作中に Zookeeperに依存する必要があるため、最初に Zookeeper をインストールする必要があります

6.3.2インストール

1). 飼育員の 設置
2). Mycat-web のインストール

6.3.3アクセス

http://192.168.200.210:8082/mycat

 6.3.4設定

1). MyCat (server.xml)のリアルタイム統計機能 をオンにする

<property name="useSqlStat">1</property> <!-- 1为开启实时统计、0为关闭 -->
2). Mycat監視インターフェイス サービス アドレスを設定します。

 6.3.5テスト

構成が完了したら、 MyCat を使用し て追加、削除、変更、確認の一連のテストを実行し、一定の時間が経過した後、
mycat-eyeの管理インターフェースでは mycat-eye が監視しているデータ情報を表示します。

A.パフォーマンスの監視

 B.物理ノード

 C. SQL統計

 D. SQLテーブル分析

 E. SQL監視

 F.高頻度SQL

 

♥️以下が私の創作の原動力です

♥️いいね、それが私にとって最大の評価です

♥️Xiaoliu です。どの記事もうまく書くよう励まされています、皆さんありがとうございます

おすすめ

転載: blog.csdn.net/lzl10211345/article/details/131743399