久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL表數據的DML操作

144次閱讀
沒有評論

共計 1920 個字符,預計需要花費 5 分鐘才能閱讀完成。

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

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

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-01發表,共計1920字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 双江| 行唐县| 平山县| 定陶县| 高唐县| 五峰| 南平市| 东阳市| 南阳市| 正阳县| 潜江市| 双鸭山市| 舒城县| 万全县| 清原| 吴江市| 鹤山市| 遵化市| 宁津县| 蓬莱市| 清水县| 韶关市| 辰溪县| 德令哈市| 晋城| 马龙县| 南川市| 徐汇区| 阳西县| 安顺市| 额尔古纳市| 东丰县| 平舆县| 金山区| 贡山| 察隅县| 华池县| 婺源县| 新郑市| 西宁市| 宣恩县|