mysql表分割槽全文搜尋 Mysql表分割槽

2021-10-18 03:06:18 字數 2597 閱讀 6148

什麼時候使用分割槽

海量資料

資料表索引大於伺服器有效記憶體

分割槽的限制

大部分只能對資料表的整型列進行分割槽,或者資料列可以通過分割槽函式轉化成整型列(其中columns支援 integer / string / date / datetime型別)

最大分割槽數目不能超過1024

如果含有唯一索引或者主鍵,則分割槽列必須包含在所有的唯一索引或者主鍵內

不支援外來鍵

不支援全文索引(fulltext)

分割槽支援函式限制

mysql支援range,list,hash,key分割槽型別,其中以range最為常用:

range(範圍)–這種模式允許將資料劃分不同範圍。例如可以將乙個表通過年份劃分成若干個分割槽。

hash(雜湊)–這中模式允許通過對錶的乙個或多個列的hash key進行計算,最後通過這個hash碼不同數值對應的資料區域進行分割槽。例如可以建立乙個對錶主鍵進行分割槽的表。

key(鍵值)-上面hash模式的一種延伸,這裡的hash key是mysql系統產生的。

list(預定義列表)–這種模式允許系統通過預定義的列表的值來對資料進行分割。

composite(復合模式) –以上模式的組合使用

分割槽sql

過濾分割槽表的where條件必須是切分分割槽表的列

range分割槽

alter table employees partition by range (store_id) (

partition p0 values less than (6),

partition p1 values less than (11),

partition p2 values less than (16),

partition p3 values less than (21)

list分割槽

alter table employees partition by list(store_id) (

partition pnorth values in (3,5,6,9,17),

partition peast values in (1,2,10,11,19,20),

partition pwest values in (4,12,13,14,18),

partition pcentral values in (7,8,15,16)

hash分割槽

hash分割槽的目的是將資料均勻的分布到預先定義的各個分割槽中,保證各分割槽的資料量大致一致。

alter table employees partition by hash(store_id)

partitions 4;

hash的分割槽函式頁需要返回乙個整數值。partitions子句中的值是乙個非負整數,不加的partitions子句的話,預設為分割槽數為1。

key分割槽

key分割槽和hash分割槽相似,不同在於hash分割槽是使用者自定義函式進行分割槽,key分割槽使用mysql資料庫提供的函式進行分割槽,ndb cluster使用md5函式來分割槽,對於其他儲存引擎mysql使用內部的hash函式,這些函式基於password()一樣的演算法。

alter table tm1  partition by key(s1)

partitions 10;

columns分割槽

上面的range、list、hash、key四種分割槽中,分割槽的條件必須是整形,如果不是整形需要通過函式將其轉換為整形。

mysql-5.5開始支援columns分割槽,可視為range和list分割槽的進化,columns分割槽可以直接使用非整形資料進行分割槽。columns分割槽支援以下資料型別:

所有整形,如int smallint tinyint bigint。float和decimal則不支援。

日期型別,如date和datetime。其餘日期型別不支援。

字串型別,如char、varchar、binary和varbinary。blob和text型別不支援。

columns可以使用多個列進行分割槽。

子分割槽subpartitioning

alter table ts  partition by range( year(purchased) )

subpartition by hash( to_days(purchased) )

subpartitions 2 (

partition p0 values less than (1990),

partition p1 values less than (2000),

partition p2 values less than maxvalue

管理分割槽

增加分割槽

alter table members add partition (partition p3 values less than (2000));

刪除分割槽

alter table tr drop partition p2;

合併分割槽

alter table members

reorganize partition p0 into (

partition n0 values less than (1960),

partition n1 values less than (1970)

mysql中文全文搜尋

centos6 xampp1.7.7 mysql5.5 opt lampp bin mysql uroot ppassword mysql show variables like plugin dir 外掛程式路徑 opt lampp lib mysql plugin wget tar zxvf m...

Mysql全文搜尋match against的用法

全文檢索在 mysql 中就是乙個 fulltext 型別索引。fulltext 索引用於 myisam 表,可以在 create table 時或之後使用 alter table 或 create index 在 char varchar 或 text 列上建立對於大的資料庫,將資料裝載到乙個沒有...

mysql全文搜尋match against

1只能支援 英文搜尋 不能支援中文 中文請使用sphinx 斯芬克斯 coreseek 2 基本語法 select from article where match title,content against 查詢字串 3被搜尋的字段 必須為同一張表同時必須是fulltext 索引,除非 match...