MySQL查詢與刪除or如何命中索引

2021-10-11 03:11:36 字數 660 閱讀 5340

表結構如圖

需要按keyword與attr兩個字段進行一萬條記錄的刪除,該如何做?

分析:首先一萬條按每一千條傳送到資料庫進行批量刪除;其次如何寫sql?

第一種寫法(不建議):

delete from synonym where concat(keyword,attr) in

concat(#,#)

原因:concat導致全表掃瞄,索引失效

第二種寫法(不建議):

delete from synonym where (keyword='手機' and attr='123') or (keyword='123' and attr='小型氣幫浦木工')  or()……

原因:隱式型別轉換導致索引失效,123->"123",

第三種寫法:

delete from synonym where

(keyword=# and attr=#)

加了引號,命中索引

第四:還有更好的寫法或優化方案嗎?

mysql刪除查詢 MySQL 刪除查詢

如果想從 mysql 表中刪除記錄,就要用到 sql 命令 delete from 可以在命令列中使用該命令,也可以在 php 指令碼中使用它。語法格式 下面是利用 delete 命令刪除 mysql 表中資料的一般語法格式 delete from table name where clause 如...

MYSQL刪除子查詢

delete from h bbs replymore where id 62 and reply id in select reply id from h bbs replymore where id 62 一開始怕刪除資料,又要重新造資料,因此用查詢語句測試,能查詢到結果,所以沒試delete,...

mysql 關聯刪除 mysql如何刪除關聯表

mysql資料庫中,表與表之間進行關聯之後,就不可隨意的進行刪除操作,否則會影響所有關聯表之間的結構,那麼如何安全的刪除關聯表呢,讓我們來了解一下。mysql使用drop命令刪除關聯表,方法為 1.刪除表的外來鍵約束 外來鍵是乙個特殊字段,其將某乙個表與其父表建立關聯關係。在建立表的時候,外來鍵約束...