中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL表數據的DML操作

發布時間:2021-08-19 20:08:39 來源:億速云 閱讀:164 作者:chen 欄目:數據庫

這篇文章主要介紹“MySQL表數據的DML操作”,在日常操作中,相信很多人在MySQL表數據的DML操作問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL表數據的DML操作”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

從過往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表數據的DML操作”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷州市| 综艺| 津市市| 大足县| 诸暨市| 临洮县| 湛江市| 乐平市| 新安县| 日喀则市| 韶关市| 浦县| 济阳县| 孝义市| 大厂| 荣成市| 隆德县| 湘潭县| 化隆| 翁牛特旗| 东源县| 翼城县| 崇义县| 泸水县| 灵台县| 繁峙县| 梅河口市| 厦门市| 文登市| 宁阳县| 玉环县| 栖霞市| 砀山县| 石台县| 贵溪市| 辽阳市| 广南县| 阳信县| 青海省| 额济纳旗| 宣汉县|