使用range建立分割槽,先是在本地5.0.45版本mysql上建立,一直失敗。
於是到測試伺服器5.5.35上建立,也失敗,而且錯誤提示資訊模糊。
於是從網上最簡單的做起,最後發現,跟表的主鍵有關係,如果有id主鍵,又想使用time來做分割槽,那麼需要將主鍵設定為:
create table t (
`id` bigint not null auto_increment comment 'id',
`call_time` datetime not null default '1970-01-01 00:00:00' comment '呼叫時間',
primary key (`id`,call_time)
) engine=innodb auto_increment=1 default charset=utf8 collate=utf8_bin
partition by range (to_days(call_time))(
partition p201503 values less than (to_days('2015-04-01')),
partition p201504 values less than (to_days('2015-05-01'))
);還遇到乙個問題,在建表的時候,mysql會自動判斷後面partition的then後面的數是否大於前面的,否則會有錯誤提示。
這種表主要是用來存放日誌的,時間久了以後,可能資料量會比較大,至於查詢的sql主要是限定時間,這個效能還有待測試。
給mysql資料表加索引的一次經驗與體會
昨天遇到乙個問題 在一張有三十萬條紀錄的資料表a,其主鍵自增字段id,name欄位 varchar 還有type id int 在name欄位上已經新增了索引。type id由於是整型字段,認為加索引沒有太多的意義,所以沒有加索引。本次有乙個需求是在乙個迴圈中按type id查詢此表a,結果一執行此...
mysql一次更新多條記錄問題
replace into和insert into on duplicate key 區別 create table test id tinyint 3 unsigned not null auto increment,name char 10 not null default dept char 1...
記錄一次mysql主從複製
首先準備2臺mysql 安裝mysql 記得關閉防火牆 關閉防火牆 安裝centos 7 安裝完mysql以後記得檢視mysql的uuid是否一致 因為有的人是安裝好一台後直接轉殖的伺服器,如果你是單獨安裝的請忽略 如果一致記得修改,具體操作如下 首先找到你的my.cnf檔案,然後根據datadir...