十四、mysql 分区之 HASH && KEY_MySQL
1.hash分区 PS::个人觉得HASH分区很好很强大,简单确分布极其均匀 创建实例: CREATE TABLE HASH_EMP ( tid int, tname char(255) ) PARTITION BY HASH (tid) PARTITIONS 8; 将hash_emp进行的tid进行hash分区,并分为8个区 查询分区的数据分布情况: select partition_name,partition_expression,partition_description,table_rows from information_schema.partitions where table_schema = schema() and table_name = 'hash_emp'; +----------------+----------------------+-----------------------+------------+ | partition_name | partition_expression | partition_description | table_rows | +----------------+----------------------+-----------------------+------------+ | p0 | tid | NULL | 0 | | p1 | tid | NULL | 0 | | p2 | tid | NULL | 0 | | p3 | tid | NULL | 0 | | p4 | tid | NULL | 0 | | p5 | tid | NULL | 0 | | p6 | tid | NULL | 0 | | p7 | tid | NULL | 0 | +----------------+----------------------+-----------------------+------------+ 创建1个event,用来不间断写入数据,测试分布情况: create event hash_emp_event on scheduler every 1 second do insert into hash_emp values (NULL,now()); set GLOBAL event_scheduler = 1; //开启调度器 再次查看分区数据分布情况: +----------------+----------------------+-----------------------+------------+ | partition_name | partition_expression | partition_description | table_rows | +----------------+----------------------+-----------------------+------------+ | p0 | tid | NULL | 41 | | p1 | tid | NULL | 42 | | p2 | tid | NULL | 42 | | p3 | tid | NULL | 42 | | p4 | tid | NULL | 42 | | p5 | tid | NULL | 42 | | p6 | tid | NULL | 42 | | p7 | tid | NULL | 42 | +----------------+----------------------+-----------------------+------------+ 可以看出来,hash分布极其均匀:;2.Key分区 PS::所谓key分区则是指mysql默认使用表的主键或唯一建进行分区管理 创建实例: CREATE TABLE KEY_EMP ( tid int, tname char(255) ) PARTITION BY KEY (tid) PARTITIONS 8; PS::因为跟hash差不多,就不进行过多测试了!!!3.子分区 PS::顾名思义就是在分区上再建分区 PS::支持子分区的分区模式有range || list ,它们2者都可以支持hash或list的子分区 创建实例:: CREATE TABLE ZI_EMP ( tid int, tname char(255) ) PARTITION BY RANGE (tid) SUBPARTITION BY HASH (tid) SUBPARTITIONS 2 ( PARTITION p0 values less than (1990), PARTITION p1 values less than (2028), PARTITION p2 values less than (MAXVALUE) ); 将zi_emp分成了3个range分区,每个分区在分为2个子分区,如是,有了下面的分区结构: +----------------+----------------------+-----------------------+------------+ | partition_name | partition_expression | partition_description | table_rows | +----------------+----------------------+-----------------------+------------+ | p0 | tid | 1990 | 0 | | p0 | tid | 1990 | 0 | | p1 | tid | 2028 | 0 | | p1 | tid | 2028 | 0 | | p2 | tid | MAXVALUE | 0 | | p2 | tid | MAXVALUE | 0 | +----------------+----------------------+-----------------------+------------+ 也就是说,如果tid小于1990,那么数据会被hash分配到p0这2个子分区中

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。

記事では、準備されたステートメント、入力検証、および強力なパスワードポリシーを使用して、SQLインジェクションおよびブルートフォース攻撃に対するMySQLの保護について説明します。(159文字)
