有一張表用來存溫度資訊用於頁面展示折線圖用
結構如下
create table `temp` (
`id` varchar(40) not null,
`duuid` varchar(40) default null,
`temp` int(11) default null,
`recordtime` datetime default null,
primary key (`id`),
key `duuid` (`duuid`) using btree
) engine=innodb default charset=utf8;
duuid是裝置的uuid,
temp是溫度值
recordtime是記錄時間
該資料是每隔30min通過事件和儲存過程將裝置實時狀態表的溫度資訊掃瞄到該表裡
裝置最大有65025,也就是每到30min就會插入65025條資料
資料儲存時間為30天
也就是資料庫裡的資料量最大有93636000條
查詢語句如下:
select duuid, temp, recordtime from temp where duuid = '***' and recordtime between '2018-11-01 00:00:00' and '2018-12-01 00:00:00' order by recordtime;
直接查詢30天的資料,1440條
使用innodb引擎的情況下
就我的開發機子查詢時間在23s左右
加聯合索引(duuid,recordtime)後查詢時間在15s左右
myisam引擎在3s左右
但是就目前我這個需求,用myisam可不可行?
或者,在不分表的情況下有沒有更加優化的方案?
還有刪除的效率實在是太低了
delete from temp where recordtime < '***'
執行下來要111分鐘,量大概在312w,每天執行一次
mysql怎麼選擇合適的儲存引擎
以下內容摘抄與 深入淺出mysql 在選擇儲存引擎時,應根據應用特點擊擇合適的儲存引擎,對於複雜的應用系統可以根 據實際情況選擇多種儲存引擎進行組合。下面是常用儲存引擎的適用環境。myisam 預設的 mysql 外掛程式式儲存引擎。如果應用是以讀操作和插入操作為主,只有很少的更新和刪除操作,並且對...
Mysq修改引擎
前言 innodb和myisam是許多人在使用mysql時最常用的兩個表型別,這兩個表型別各有優劣,視具體應用而定。基本的差別為 myisam型別不支援事務處理等高階處理,而innodb型別支援。myisam型別的表強調的是效能,其執行數度比innodb型別更快,但是不提供事務支援,而innodb提...
mysql如何選擇引擎 mysql引擎如何選擇
有一張表用來存溫度資訊用於頁面展示折線圖用 結構如下 create table temp id varchar 40 not null,duuid varchar 40 default null,temp int 11 default null,recordtime datetime default...