工具:mysql數據庫創建一個user的表里邊的字段
成都創新互聯公司服務項目包括沈丘網站建設、沈丘網站制作、沈丘網頁制作以及沈丘網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,沈丘網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到沈丘省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
1.普通索引 添加INDEX
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
下面演示下給user表的name字段添加一個索引
2.主鍵索引 添加PRIMARY KEY
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
3.唯一索引 添加UNIQUE
ALTER TABLE `table_name` ADD UNIQUE ( `column` )
4.全文索引 添加FULLTEXT
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.如何添加多列索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
1.添加PRIMARY KEY(主鍵索引) mysqlALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysqlALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 4.添加FULLTEXT(全文索引) mysqlALTER TABLE `table_name` ADD FULLTEXT ( `column`) 5.添加多列索引 mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
根據用戶定義的枚舉值與分片節點映射文件,直接定位目標分片。
用戶在rule.xml中配置枚舉值文件路徑和分片索引是字符串還是數字,DBLE在啟動時會將枚舉值文件加載到內存中,形成一個映射表
在DBLE的運行過程中,用戶訪問使用這個算法的表時,WHERE子句中的分片索引值會被提取出來,直接查映射表得到分片編號
與MyCat的類似分片算法對比
中間件
DBLE
MyCat
分片算法種類 ? ?enum 分區算法 ? ?分片枚舉 ?
兩種中間件的枚舉分片算法使用上無差別。
開發注意點
【分片索引】1. 整型數字(可以為負數)或字符串((不含=和換行符)
【分片索引】2. 枚舉值之間不能重復
Male=0Male=1
或者
123=1123=2
會導致分片策略加載出錯
【分片索引】3. 不同枚舉值可以映射到同一個分片上
Mr=0Mrs=1Miss=1Ms=1123=0
運維注意點
【擴容】1. 增加枚舉值無需數據再平衡
【擴容】2. 增加一個枚舉值的分片數量數時,需要對局部數據進行遷移
【縮容】1. 減少枚舉值需要數據再平衡
【縮容】2. 減少一個枚舉值的分片數量數時,需要對局部數據進行遷移
配置注意點
【配置項】1. 在 rule.xml 中,可配置項為?property name="defaultNode" 、property name="mapFile" 和 property name="type"
【配置項】2. 在 rule.xml 中配置?property name="defaultNode"?標簽,非必須配置項,不配置該項的話,用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會報錯;若需要配置,必須為非負整數,用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會路由至這個值的 MySQL 分片
【配置項】3. 在 rule.xml 中配置 property name="mapFile"?標簽,范圍映射文件的路徑:若在映射文件在 DBLE_HOME/conf 或其中,則可以使用相對路徑的形式配置,例如,映射文件是 DBLE_HOME/conf/map/table_map.txt 時,配置值就可以簡寫為 map/table_map.txt;映射文件在 DBLE_HOME/conf 目錄以外時,需要使用絕對路徑,但這種做法需要考慮用戶權限等問題,因此不建議把映射文件放在 DBLE_HOME/conf 外。
【配置項】4. 編輯 mapFile 所配置的文件
記錄格式為:枚舉值=分片編號
枚舉值可以是整型數字,或任意字符(除了=和換行符),分片編號必須是非負整型數字,記錄之間以換行分隔,一行僅能有一條記錄,枚舉值不能夠是“DEFAULT_NODE”這個字符串,允許以“//”和“#”在行首來注釋該行
【配置項】5. 在 rule.xml 中配置 property name="type"?標簽;type 必須為整型;取值為 0 時,mapFile 的枚舉值必須為整型;取值為非 0 時,mapFile 的枚舉值可以是任意字符(除了=和換行符)
索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索包含多個列。
MySQL索引類型包括:
(1)普通索引
這是最基本的索引,它沒有任何限制。它有以下幾種創建方式:
◆創建索引
CREATE
INDEX
indexName
ON
mytable(username(length));
如果是
CHAR,VARCHAR類型,length可以小于字段實際長度;如果是BLOB和TEXT類型,必須指定
length,下同。
◆修改表結構
ALTER
mytable
ADD
INDEX
[indexName]
ON
(username(length))
◆
創建表的時候直接指定
CREATE
TABLE
mytable(
ID
INT
NOT
NULL,
username
VARCHAR(16)
NOT
NULL,
INDEX
[indexName]
(username(length))
);
刪除索引的語法:
DROP
INDEX
[indexName]
ON
mytable;
(2)唯一索引
它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種創建方式:
◆創建索引
CREATE
UNIQUE
INDEX
indexName
ON
mytable(username(length))
◆修改表結構
ALTER
mytable
ADD
UNIQUE
[indexName]
ON
(username(length))
◆創建表的時候直接指定
CREATE
TABLE
mytable(
ID
INT
NOT
NULL,
username
VARCHAR(16)
NOT
NULL,
UNIQUE
[indexName]
(username(length))
);
(3)主鍵索引
它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時創建主鍵索引:
CREATE
TABLE
mytable(
ID
INT
NOT
NULL,
username
VARCHAR(16)
NOT
NULL,
PRIMARY
KEY(ID)
);
當然也可以用
ALTER
命令。記住:一個表只能有一個主鍵。
(4)組合索引
為了形象地對比單列索引和組合索引,為表添加多個字段:
CREATE
TABLE
mytable(
ID
INT
NOT
NULL,
username
VARCHAR(16)
NOT
NULL,
city
VARCHAR(50)
NOT
NULL,
age
INT
NOT
NULL
);
當前題目:mysql枚舉怎么索引 mysql 枚舉 索引
文章出自:http://vcdvsql.cn/article2/ddcecoc.html
成都網站建設公司_創新互聯,為您提供網站導航、網站內鏈、虛擬主機、外貿網站建設、響應式網站、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯