久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中怎么實現range分區

123次閱讀
沒有評論

共計 2304 個字符,預計需要花費 6 分鐘才能閱讀完成。

本篇文章為大家展示了 mysql 中怎么實現 range 分區,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一,如何啟動 mysqld?
 
        本人把 mysql 安裝在環境下,安裝的主目錄 homedir 是 c:\Program Files
\MySQL\MySQL Server 5.1\,啟動方法非常簡單:首先進入 cmd 命令行窗口,如下圖:
 
     
          執行如下命令:cd  c:\Program Files\MySQL\MySQL Server 5.1\,進入 mysql 安裝目錄,
可以看到 bin 目錄,該目錄是存放 mysql 的各種可執行文件,cd bin,進入該目錄,
 
找到 mysqld.exe 的可執行文件,執行 mysqld,即啟動 mysqld,如下圖:
  www.2cto.com  
       
  此時,打開任務管理器 –》進程,可以看到 mysqld.exe,表示啟動成功。
 
         
 
二,如何關閉 mysqld?
 
        運行 cmd,將路徑切換到:c:\Program Files\MySQL\MySQL Server 5.1\bin 下,用命令  
        mysqladmin -u root -p shutdown
 
        如下圖所示:
 
     
 
三,innodb_file_per_table 設置
 
        mysql innodb 存儲引擎對表空間的管理在默認情況下是使用共享表空間,
即所有表的索引和數據均放在一個以 ibdata1 的文件中,我們可以執行下面的命令查看:
 
     
        可以看到對應的 Value:OFF,下面我們在配置文件 my.ini 增加下面一行:
 
        #tenfy: 新添加的參數
        innodb_file_per_table=1
  www.2cto.com  
        然后,重新啟動 mysqld,此時,可以看到:
 
 
          那么,你也許會問,之前在 innodb_file_per_table= 0 的時候已經創建的表,
此時還是繼續使用共享表空間嗎?是的,如果我們不對表進行修改,之前的可以繼續使用,但
 
          將共享表空間修改成獨立表空間,除了修改 innodb_file_per_table 參數外,
我們需要修改所有 innodb 的表都運行如下:
 
         alter table table_name engine=innodb;(tenfy:注意紅色部分必須添加,
否則無法生效),一旦執行完成后,我們可以在 data 的 mytest1 目錄下,看到根據各個分區
生成的各個.ibd 后綴的文件,這些文件就是獨立表空間文件,每個分區對應一個。
(關于分區我們將在下面講解)
 

 
四,mysql 分區概述
 
        分區功能并不是在存儲引擎層完成的,因此除了 innodb 支持分區外,MyISAM,NDB
等均支持分區功能,而 CSV,FEDERATED,MERGE 則不支持分區功能。而 MySQL 在 5.1 版本時
添加了對分區功能的支持。
 
      分區是將一個表或者索引物分解成多個更小的,更可管理的部分,而對用戶訪問 db 的應用來說,
從邏輯上看,只有一個表或者一個索引(這里跟分庫分表的訪問不一樣),但在物理上這個表或者
索引可能是由許多個物理分區組成的,每個分區都是一個獨立的對象,可以進行獨立處理。
  www.2cto.com  
      那么怎么判斷當前是否啟用了分區功能呢?可以執行如下命令進行查看:
 

 
      或者:
     
 
        當前 MySQL 支持以下幾種分區:
 
       1,RANGE 分區:顧名思義,區間分區,行數據基于一個給定連續區間的列值放入分區。
 
       2,LIST 分區:列表分區,與 RANGE 分區類似,只是 LIST 分區面向的是離散可列舉的值。
 
       3,HASH 分區:根據用戶自定義的表達式的返回值來進行分區,返回值不能是負數。
 
       4,KEY 分區:根據 MySQL 數據庫提供的哈希函數進行分區。
 
        但是不論什么類型的分區,必須注意以下兩個問題:
 
      1,如果表中存在 primary key 或者 unique key 時,分區的列必須是 primary key 或者
unique key 的一個組成部分,也就是說,分區函數的列只能從 pk 或者 uk 這些 key 中取子集。 www.2cto.com  
 
        如下:
     
 
      表 par_tb1 有唯一 key,他們對應的列是 col1,col2。而此時進行分區的列卻是 col3,
因此出現 1503 錯誤,此時我們把 col3 加入到 unique key 或者用 col1 或者 col2 進行分區均
 
      沒問題:

     
      2,如果表中不存在任何的 primary key 或者 unique key,則可以指定任何一個列作為分區列。
 
五,RANGE 分區。
 
        RANGE 分區是最常用的一種分區類型,它的特點主要是按照某個列連續的值進行分區,
因此在分區中常常使用 values less than (xxx),下面我們以具體的例子來說明。
 
        首先我們創建一個表,名字叫:range_par_tbl,有一個 int 類型的 id 字段,當 id 小于 10 的
時候,插入第一個分區,當 id 小于 20 的時候插入第二分區。如下:
       
        此時,我們查看對應的分區表空間文件(注意:因為我們之前設置了 innodb_file_per_table=1),
此時啟用分區后,表已經由建立分區時的各個分區 ibd 文件組成了,由于我們分了兩個區,
因此可以看到對應的兩個文件: www.2cto.com  

上述內容就是 mysql 中怎么實現 range 分區,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計2304字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 中牟县| 佛教| 五大连池市| 旺苍县| 额敏县| 大宁县| 阳谷县| 页游| 凉山| 印江| 奎屯市| 乌鲁木齐市| 天等县| 师宗县| 忻州市| 南平市| 安泽县| 简阳市| 杭州市| 平邑县| 锦屏县| 始兴县| 泰宁县| 仁怀市| 五华县| 温州市| 凌海市| 胶州市| 墨竹工卡县| 招远市| 电白县| 岗巴县| 南川市| 府谷县| 大新县| 瓦房店市| 饶阳县| 泸溪县| 古浪县| 阜阳市| 佛学|