1. 程式人生 > >mysql分割槽管理

mysql分割槽管理

      hash分割槽的目的是將資料按照某列進行hash計算後更加均勻的分散到各個分割槽,相比,range和list分割槽來說,hash分割槽不需要明確指定一個給定的列值或者列值集合

應該在儲存在哪個分割槽,mysql會自動按照hash計算後完成這些工作,我們只需要基於將要進行hash的列值指定一個列或者表示式,以及可選的指定要分割槽的表總的分割槽數量。

     下面我們舉一個例子來說,hash分割槽如何建立。首先我們建立如下的表格:hash_partition_tbl,並插入幾條記錄到表中,如下所示:

     

      我們也同時看一下,對應的表空間檔案是如何分佈的(注意,我們已經設定了innodb_file_per_table=1,即每個表單獨一個ibd檔案),我們在對應的datadir目錄下可以看到:

    

     由於我們是分成4個hash區,因此可以看到四個表空間檔案,分別是hash_partition_tab#p#pi.ibd,i=0,1,2,3。

     這裡的hash分割槽的確定按照如下規則:

     mod(YEAR(‘2012-05-01’),4) = mod (2012,4) = 0, 在分割槽p0;

     mod(YEAR(‘2016-05-01’),4) = mod (2016,4) = 0, 在分割槽p0;

     mod(YEAR(‘2010-05-01’),4) = mod (2010,4) = 2, 在分割槽p2;

     mod(YEAR(‘2011-05-01’),4) = mod (2011,4) = 3, 在分割槽p3;

    因此,我們認為 p0有2個記錄,p2和p3分別有1個記錄,p1記錄數為0,那麼接下來我們通過查詢information_schema.PARTITIONS表來驗證。

   

      之前我們知道range和list分割槽,如果表中存在primary key或者unique key,則對應分割槽的列必須是這些key的子集,那麼對hash是否有同樣的約束呢,字元型別的列是否可以作為hash分割槽?接下來我們立刻以實驗為基礎進行驗證。

     首先把之前的分割槽先刪除掉,執行如下命令:

   

    發現drop partition命令只能用在RANGE和LIST分割槽中。

    現在我們把a設定為unique key,如果成功,則說明hash分割槽允許非unique key 作為hash的列,執行如下:

   

    說明:如果將要分割槽的表有一個唯一的鍵,那麼用來作為HASH使用者函式的自變數或者主鍵的column_list的自變數的任意列都必須是那個鍵的一部分。

    下面試一下,字串列是否可以作為hash分割槽的列,按照上面的討論和說明,我們認為是不行的,因為hash的計算本質是mod運算,必須是整數。實驗如下:

    

      實驗證明:hash的分割槽必須是整數列。

     可以通過下面的命令,進行重新分割槽:

     alter table hash_partition_tbl partition by hash(a) partitions 4;   

相關推薦

mysql ---分割槽管理與維護

mysql 分割槽管理 為沒有分割槽的表建立分割槽 alter table user_1 partition by range(age)( partition age_1 values less than (20), partition age_2 values less than (30)

mysql分割槽管理

      hash分割槽的目的是將資料按照某列進行hash計算後更加均勻的分散到各個分割槽,相比,range和list分割槽來說,hash分割槽不需要明確指定一個給定的列值或者列值集合 應該在儲存在哪個分割槽,mysql會自動按照hash計算後完成這些工作,我們只需要基於

MySQL簡單管理

入門 管理系統 gre auto 其他 leg 操作權限 管理系 sql數據庫 基礎入門 ============管理MySQL========== 1.查看MySQL版本 mysqladmin --version 2.啟動MySQL /etc/init.d/mysqld

MySQL 日誌管理

lib gen 查看 ner 存儲 ots min mysql col 一、 日誌文件清理 1. 查看普通查詢日誌文件大小 [[email protected]/* */ ~]$ sudo du -sh /var/lib/mysql/bogon.log 3.

MySQL 賬戶管理

5.7 lock bold clas date create acc null eat 一、當前日期、當前用戶、當前數據庫版本 mysql> select curdate(),version(),database(),user(); +------------+--

Windows下MySQL日誌管理(Linux相似)1.1

-h 發現 註意 line _id mod sni ans avi 為什麽要開啟數據庫的日誌 當多個程序都在使用數據庫的時候。我們的數據庫有時候竟然還會掛掉。想找原因?發現沒日誌可查。各個程序自己的日誌又不能找到關鍵原因。所以要開啟數據庫的日誌系統。 控制日誌大

MySQL密碼管理、存儲引擎及事務

mysql密碼管理、存儲引擎及事務MYSQL密碼管理:修改用戶密碼:(1) SET PASSWORD [FOR ‘user‘@‘host‘] = PASSWORD(‘cleartext password‘); (2) UPDATE mysql.user SET Password=PASSWORD(‘clear

Mysql密碼管理及授權

命令格式 一個 直接 客戶 for 執行 tex 客戶端 etc 目錄1 管理root用戶密碼2 用戶授權與權限撤銷3 安裝圖形管理工具1 管理root用戶密碼1.1 修改密碼方法1:用mysqladmin該方式需要知道mysql的原密碼命令格式:mysqladmin -

mysql-utilities 管理工具集的使用

white lee -i 提取 python版本 fault yun isp 社區 mysql-utilities 管理工具集的使用: 更詳細的參數 ,參照官方文檔: https://dev.mysql.com/doc/mysql-utilities/ 直接去MySQL官網

mysql授權管理

mysql 權限管理數據庫的安全的重要性就不需要我來贅述了。除了做好安全備份外,我們首先要做的是做好我們數據庫的權限控制,盡量保護我們的數據庫不被黑客攻擊。本文主要講的是mysql數據庫的權限管理 ,在當前網絡環境中互聯網公司中的關系型數據庫大多采用的是mysql。首先說一下mysql數據庫管理權限的數據庫是

MySQL索引管理及執行計劃

索引管理MySQL索引管理及執行計劃第1章 索引介紹:索引是對數據庫表中一列或者多了的值進行排序的一種結構,使用索引可以快速訪問數據庫表中的特定信息,如果想按特定職員的姓名來查找,則與他在表中搜索所有的行相比,索引有助於更快的獲取信息索引的一個主要目的就是加快檢索表中的數據的方法,既能協助信息搜索者盡快找到符

MySQL日誌管理

mysql日誌管理MySQL日誌管理第1章 mysql日誌類型1.1 mysql日誌類型簡介:1.1 錯誤日誌:1.1.1 作用:記錄mysql數據庫的一般狀態信息及報錯信息,是對數據庫報錯處理常用的日誌1.1.2 配置方法:[mysqld] log-error=/var/log/mysql.log1.1.3

DAY5-MySQL日誌管理

無法 時間 bsp glob position HA 錯誤 mixed now() 日誌文件 錯誤日誌 --log-error error-log=/data/mysql/mysql3306/error.log常規日誌 --general_log=/

Java課程設計---安裝Mysql管理工具

需要 編碼 tps ref target 管理工具 技術分享 span blank   1、安裝mysql   沒有安裝包的可以在這個地址下載:https://dev.mysql.com/downloads/mysql/5.5.html      雙擊提供的安裝包     

mysql-日誌管理

log-error relay 日誌 chown err mysql sql long slave MySQL日誌管理/etc/my.cnf error log 錯誤日誌 排錯 /var/log/mysqld.log【默認開啟】 b

詳解MySQL用戶與授權、MySQL日誌管理、數據亂碼解決方案。

服務 defaults 速查 col pda pro 創建 接下來 方案 數據庫是信息系統中非常重要的環節,合理高效的對它進行管理是很重要的工作。通常是由總管理員創建不同的管理賬戶,然後分配不同的操作權限,把這些賬戶交給相應的管理人員使用。本篇我們在CentOS7.5操作系

mysql 常用管理命令

ble 需要 span l命令 統計 spa mar esc mysql命令 常見的管理mysql命令 (1)用於選擇在MySQL工作區指定的數據庫(選擇數據庫): USE Databasename; (2)列出了MySQL數據庫管理系統中的所有可訪問的數據庫

mysql 日誌管理

col 查看 查詢 c99 分享 http watermark jpg 51cto 1、錯誤日誌2、通用日誌(1)通用日誌查詢(2)修改配置文件,開啟通用日誌。3、二進制日誌(1)查看二進制日誌(2)修改配置文件,開啟二進制日誌。4、慢日誌(1)查看慢日誌(2)修改配置文件

2.ORACLE分割槽表遷移MySQL分割槽

介紹 由於MySQL沒有類似於ORACLE間隔分割槽類似的功能,所以遷移分割槽表的時候工作量較大,下面就把常用到的一些工具指令碼及操作過程列在下面。 操作 1 修改分割槽表定義 ORACLE增加了間隔分割槽功能,可以在資料插入的時候自動新增分割槽,但是MySQL就不具備這個功

網際網路公司為啥不使用mysql分割槽表?

解決什麼問題? 回答:當mysql單表的資料庫過大時,資料庫的訪問速度會下降,“資料量大”問題的常見解決方案是“水平切分”。   mysql常見的水平切分方式有哪些? 回答:分庫分表,分割槽表   什麼是mysql的分庫分表? 回答:把一個很大的庫(表