一、mysql
1、on DUPLICATE key update
on DUPLICATE key update completed_value=values(completed_value):這是 MySQL 中的 INSERT ... ON DUPLICATE KEY UPDATE 語法,表示如果在插入過程中遇到了唯一鍵衝突,則執行更新操作。
在這裏,如果 a_id 和 m_id 的組合鍵有重複,則更新 completed_value 字段的值爲當前插入的值。
2、insert ignore into table;
INSERT IGNORE語句用於向數據庫表中插入數據,同時忽略重複鍵錯誤。如果插入的行造成了重複鍵違規,INSERT IGNORE語句會忽略新的重複行,並繼續插入下一行數據。 以下是INSERT IGNORE語句的一般語法: sql INSERT IGNORE INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), ...; 將表名替換爲你的表的名稱,並指定要插入的列名和對應的值。 例如: sql INSERT IGNORE INTO my_table (id, name) VALUES (1, 'John'), (2, 'Alice'), (3, 'Bob');
3、Analyze table 表名;
ANALYZE TABLE語句用於分析數據庫表的統計信息,並更新數據庫中的數據字典,以幫助優化查詢性能。它會收集關於表中數據分佈和結構的信息,以便數據庫查詢優化器更好地選擇執行查詢的最有效方式。
通常,當數據庫中的數據分佈或數據量發生變化時,執行ANALYZE TABLE語句是有益的。這可以確保數據庫的查詢執行計劃基於最新的統計信息,從而提高查詢的執行效率。
4、truncate table 表名
TRUNCATE TABLE 是一種 SQL 操作,用於刪除表中的所有數據,並釋放存儲空間。與 DELETE 不同,TRUNCATE TABLE 是一種快速且資源消耗較低的操作,因爲它不會逐行刪除數據,而是直接清空整個表,並重置自增長的計數器(如果有的話)。 這個操作的作用主要包括以下幾點: 清空表數據: TRUNCATE TABLE 將刪除表中的所有行,使得表不包含任何數據。 釋放存儲空間: 刪除表中的數據後,存儲在數據庫中的空間會被釋放出來,從而可以被其他數據使用。 重置自增長計數器(如果有的話): 如果表中有自增長列(例如 MySQL 中的 AUTO_INCREMENT),TRUNCATE TABLE 操作會將這些列的計數器重置爲起始值,通常爲 1。 需要注意的是,TRUNCATE TABLE 操作是一個 DDL(數據定義語言)操作,而不是 DML(數據操作語言)操作,因此它不會被數據庫的事務管理所影響,並且無法撤銷。另外,由於 TRUNCATE TABLE 是直接操作表結構而不是行數據,所以相比於 DELETE,它的執行速度更快,但是無法在刪除前執行觸發器,也不支持帶條件刪除。