mysql碎片空間 mysql碎片應用

2021-10-18 11:48:38 字數 1748 閱讀 5432

1.查詢結果集中自增功能

set @i = 0;

select (@i :=@i + 1) id

2.資料庫備份

mysqldump database -uroot -p >:..\beifen.sql

3.資料庫表空間tablespace優化

show table status from [database] like 『[table_name] 顯示表狀態

optimize table table_name 釋放空間

表空間的優化需要設定獨享、共享空間

4.case使用

case when 兩種語法:

case when 表示式 then a else b end

case value when valueb then a else b end

語法1中when後面是表示式,判斷表示式是否為ture, 可以判斷null

語法2中直接判斷, 判斷是否為true, 對null無效

select

a.客戶名稱,

sum(case c.虛擬型別 when 『行業』 then a.流量 else 0 end)』行業』,

sum(case c.虛擬型別 when 『敏感營銷』 then a.流量 else 0 end)』敏感營銷』,

sum(case when c.虛擬型別 is null then a.流量 else 0 end)』無』

5.過程

'''drop procedureif exists p_price_cusdx_update;create procedure p_price_cusdx_update ()beginset @tjsj = '2020-05';-- 刪除舊資料deletefromprice_dx_cusidwhere統計時間 = @tjsj;-- 更改自增值set @idmax = (select max(id) + 1 from price_dx_cusid);set @sql = concat('alter table price_dx_cusid auto_increment = ', @idmax);prepare st from @sql;execute st;-- 同步更新當月客戶id資料insert price_dx_cusid (客戶名稱,業務分類,客戶id,通道型別,統計時間) select distinct`客戶名稱`,'簡訊',`客戶id`,`通道型別`,@tjsjfromdx_day_2020whereleft (統計時間, 7) = @tjsjand `資源分類` in ('普通簡訊')and `成功量` > 0;-- 同步當月**update price_dx_cusid a,price_dx_cusid_all bset a.`單價` = b.`單價`,a.`計費方式` = b.`計費方式`,a.`銷售` = b.`銷售`whereb.`統計時間` = @tjsjand a.`客戶名稱` = b.`客戶名稱`and a.`通道型別` = b.`通道型別`and a.`客戶id` = b.`客戶id`and a.`業務分類` = b.`業務分類`and a.`統計時間` = b.`統計時間`;-- 更新客戶補丁update price_dx_cusid a,price_dx_cusid_up bset a.`單價` = b.`單價`,a.`計費方式` = b.`計費方式`,a.`銷售` = b.`銷售`wherea.`統計時間` = @tjsjand a.`客戶名稱` = b.`客戶名稱`and a.`通道型別` = b.`通道型別`and a.`客戶id` = b.`客戶id`and a.`統計時間` = b.`統計時間`and a.業務分類 = b.業務分類;--end'''

Mysql優化碎片空間

mysql的表在使用的過程,會不斷產生碎片空間,占用儲存 1.查詢表的碎片空間 可以看到有120m左右的碎片空間 下面執行命令進行優化,表越大執行時間越長,執行過程中會鎖住表,切記在業務低峰操作 可以看到2g的資料,120m的碎片空整理用了8分鐘 此時再次檢視表空間使用情況 可以看到碎片空間被清理掉...

mysql 表空間碎片 MySQL 清除表空間碎片

碎片產生的原因 1 表的儲存會出現碎片化,每當刪除了一行內容,該段空間就會變為空白 被留空,而在一段時間內的大量刪除操作,會使這種留空的空間變得比儲存列表內容所使用的空間更大 2 當執行插入操作時,mysql會嘗試使用空白空間,但如果某個空白空間一直沒有被大小合適的資料占用,仍然無法將其徹底占用,就...

MySQL清除表空間碎片

1 表的儲存會出現碎片化,每當刪除了一行內容,該段空間就會變為空白 被留空,而在一段時間內的大量刪除操作,會使這種留空的空間變得比儲存列表內容所使用的空間更大 2 當執行插入操作時,mysql會嘗試使用空白空間,但如果某個空白空間一直沒有被大小合適的資料占用,仍然無法將其徹底占用,就形成了碎片 3 ...