亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

MySQL數據庫生產環境的維護工作

添加時間:2013-10-27 15:07:31  添加: 思海網絡 
 從過往MySQL數據庫生產環境的維護工作中,總結的一些小經驗和知識,未必有多深奧,但是對我們消除隱患,確保MySQL數據庫生產環境四個9的作用非常有效之一的手段,運維人員要非常注意細節,盡量減低故障發生的概率。

  (一) DML語句書寫建議

  (1). DML語句不允許出現@number方式替代字段名稱

  不合理的寫法:

  UPDATE table_name SET @1=NOW() WHERE @2=1;

  正確的寫法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1;

  (2). UPDATE OR DELETE 禁用LIMIT子句

  不合理的寫法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1 LIMIT 1;

  正確的寫法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1;

  (3). INSERT語句需要寫清楚值和字段對應關系

  不合理的寫法:

  INSERT INTO table_name VALUES(NOW(),DATE_ADD(NOW(),INTERVAL +1 DAY));

  正確的寫法:

  INSERT INTO table_name(gmt_create,gmt_modify) VALUES(NOW(),DATE_ADD(NOW(),INTERVAL +1 DAY));

  (4). DML語句少用不確定性函數

  常見被大家使用的不確定性函數:UUID()、RAND()、SYSDATE()等函數,若無特殊用處之外,請以確定性函數替代之。

  推薦閱讀的技術文章:曾用于內部培訓的PPT內容:MySQL開發規范與實用技術交流

  (二) 大數據量的DELETE OR UPDATE

  可能出于某些原因和運營目的,需要對數據庫中的數據進行大量的清理或更改某字段的值,分別舉 二個示例:

  ① 網絡專項整治的時期,需要刪除大量含某些關鍵詞的內容;

  ② 給符合某一條件(例如:等級,在線時長)的游戲玩家,贈送100~1000不等數量的游戲幣;

  給出的2個數據修改需求示例,若是直接根據相關要求去做,一個是需要用到模糊查詢,另一個數據更新條件也沒有合理索引可用,為此可能造成表對象表級鎖被長時間鎖住,而且阻塞其他更改類型數據操作服務,所以我們不得不采用更合理的辦法,建議如下步驟實施:

  ① 設計并創建一張表tmp_pk_data ,用于記錄將要被修改記錄的主鍵,及需要的相關信息;

  ② 優先考慮在備庫上跑一條SQL命令或存儲過程的方式,把主鍵及相關數據寫到表tmp_pk_data中;

  ③ 編寫一個存儲過程,使用游標循環控制獲得tmp_pd_data的信息,根據主鍵更新或刪除目標表的數據,且建議此操作在備庫上完成(注釋:必須是雙主復制模式,才可在備庫上執行);

  (三) 定期規律性清理數據的DELETE

  定期規律性數據的清理,優先對目標表的數據操縱方式進行分類:

  ① 若是日志類型的數據,則完全可以改為借助分區表的方式,比如按日期刪除數據的條件,則可以用日期作為數據分區條件,然后增刪分區的方式實現數據的清理工作;

  ② 若是數據的UPDATE/DELETE/SELECT操縱條件,與定期清理數據的規則一致或被其包含,則可以考慮使用分區表,然后借助刪除分區方式達到數據清理的目標;

  ③ 若不能使用分區表解決的,則可以考慮參考上章節介紹的“大數據量的DELETE OR UPDATE”內容;

  (四) M-M架構的大數據量DML技巧

  定期規律性數據的清理,優先對目標表的數據操縱方式進行分類:

  ① 若是日志類型的數據,則完全可以改為借助分區表的方式,比如按日期刪除數據的條件,則可以用日期作為數據分區條件,然后增刪分區的方式實現數據的清理工作;

  ② 若是數據的UPDATE/DELETE/SELECT操縱條件,與定期清理數據的規則一致或被其包含,則可以考慮使用分區表,然后借助刪除分區方式達到數據清理的目標;

  ③ 若不能使用分區表解決的,則可以考慮參考上章節介紹的“大數據量的DELETE OR UPDATE”內容;

關鍵字:MySQL、數據庫

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站