根據(jù)用戶定義的枚舉值與分片節(jié)點映射文件,直接定位目標分片。
十載的銅山網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整銅山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“銅山網(wǎng)站設計”,“銅山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
用戶在rule.xml中配置枚舉值文件路徑和分片索引是字符串還是數(shù)字,DBLE在啟動時會將枚舉值文件加載到內(nèi)存中,形成一個映射表
在DBLE的運行過程中,用戶訪問使用這個算法的表時,WHERE子句中的分片索引值會被提取出來,直接查映射表得到分片編號
與MyCat的類似分片算法對比
中間件
DBLE
MyCat
分片算法種類 ? ?enum 分區(qū)算法 ? ?分片枚舉 ?
兩種中間件的枚舉分片算法使用上無差別。
開發(fā)注意點
【分片索引】1. 整型數(shù)字(可以為負數(shù))或字符串((不含=和換行符)
【分片索引】2. 枚舉值之間不能重復
Male=0Male=1
或者
123=1123=2
會導致分片策略加載出錯
【分片索引】3. 不同枚舉值可以映射到同一個分片上
Mr=0Mrs=1Miss=1Ms=1123=0
運維注意點
【擴容】1. 增加枚舉值無需數(shù)據(jù)再平衡
【擴容】2. 增加一個枚舉值的分片數(shù)量數(shù)時,需要對局部數(shù)據(jù)進行遷移
【縮容】1. 減少枚舉值需要數(shù)據(jù)再平衡
【縮容】2. 減少一個枚舉值的分片數(shù)量數(shù)時,需要對局部數(shù)據(jù)進行遷移
配置注意點
【配置項】1. 在 rule.xml 中,可配置項為?property name="defaultNode" 、property name="mapFile" 和 property name="type"
【配置項】2. 在 rule.xml 中配置?property name="defaultNode"?標簽,非必須配置項,不配置該項的話,用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會報錯;若需要配置,必須為非負整數(shù),用戶的分片索引值沒落在 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 所配置的文件
記錄格式為:枚舉值=分片編號
枚舉值可以是整型數(shù)字,或任意字符(除了=和換行符),分片編號必須是非負整型數(shù)字,記錄之間以換行分隔,一行僅能有一條記錄,枚舉值不能夠是“DEFAULT_NODE”這個字符串,允許以“//”和“#”在行首來注釋該行
【配置項】5. 在 rule.xml 中配置 property name="type"?標簽;type 必須為整型;取值為 0 時,mapFile 的枚舉值必須為整型;取值為非 0 時,mapFile 的枚舉值可以是任意字符(除了=和換行符)
使用ALTER命令修改
【格式】
ALTER TABLE 表名 ?MODIFY COLUMN 字段名 字段類型定義;
例如:
ALTER TABLE tb_user ?MODIFY COLUMN ip VARCHAR(50);
1、授權mysql在遠程機器上以登錄。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'host' IDENTIFIED BY 'pwd' WITH GRANT OPTION。
2、修改字段名稱和類型。
--alter table upload change column old name new name new datatype
alter table filetable change column fdata fdata MediumBlob
3、MySQL BLOB。
MySQL中,BLOB是一個二進制大型對象,是一個可以存儲大量數(shù)據(jù)的容器,它能容納不同大小的數(shù)據(jù)。BLOB類型實際是個類型系列(TinyBlob、Blob、MediumBlob、LongBlob),除在存儲的最大信息量上不同,基本是等同的。
MySQL的四種BLOB類型;類型、大小(單位:字節(jié)):
1、TinyBlob 最大 255 。
2、Blob 最大 65K。
3、MediumBlob 最大 16M。
4、LongBlob 最大 4G。
實際使用中根據(jù)需要存入的數(shù)據(jù)大小定義不同的BLOB類型。注意:如存儲的文件過大,數(shù)據(jù)庫的性能會下降。
使用ALTER命令修改,格式:\x0d\x0aALTER TABLE 表名 MODIFY COLUMN 字段名 字段類型定義;\x0d\x0a\x0d\x0a例如:\x0d\x0aALTER TABLE chatter_users MODIFY COLUMN ip VARCHAR(50);
Mysql中經(jīng)常用來存儲日期的數(shù)據(jù)類型有三種:Date、Datetime、Timestamp。
Date數(shù)據(jù)類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為“YYYY-MM-DD”。支持的時間范圍為“1000-00-00”到“9999-12-31”。
Datetime類型:存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式為 “YYYY-MM-DD HH:MM:SS”。支持的時間范圍是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
Timestamp類型:也是存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
所有不符合上面所述格式的數(shù)據(jù)都會被轉換為相應類型的0值。(0000-00-00或者0000-00-00 00:00:00)