为什么在数据库中用LIKE条件删除数据会带来如此巨大的风险?

更新于
2026-08-11 06:06:41
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

什么是 LIKE 条件

LIKE 是 SQL 中用于模糊匹配的关键字。常在 WHERE 子句里指定搜索模式,例如:

SELECT * FROM table_name WHERE column_name LIKE 'pattern';老实说,

它会返回所有 column_name 符合该模式的行。

为什么在数据库中用LIKE条件删除数据会带来如此巨大的风险?

使用 LIKE 删除数据的主要痛点

使用者痛点:

  • 误删关键业务数据导致业务中断。
  • 全表扫描引起的性能骤降,程序响应慢甚至崩溃。
  • 事务回滚困难,恢复成本高昂。
  • 模糊匹配规则不明确,给后续维护人员带来困惑。

1️⃣ 误删风险——模糊匹配的不确定性

LIKE 的本质是“可能匹配”。一条看似安全的条件可能一次性匹配数千、数万行数据:

DELETE FROM users WHERE name LIKE '%张%';

如果业务只想删除姓“张”的使用者。却把包含“张三丰”或“张家口”之类的记录也一起删掉,就会产生严重的业务损失。不过,

2️⃣ 性能瓶颈——全表扫描不可避免

LIKE '%xxx' 或者没有索引支撑的模糊匹配。会迫使数据库对每一行都做字符比较:

  • 大表执行时间从毫秒升至数分钟甚至更久。
  • I/O、CPU、锁竞争激增,导致其他业务请求被阻塞。
阅读全文
标签:条件

什么是 LIKE 条件

LIKE 是 SQL 中用于模糊匹配的关键字。常在 WHERE 子句里指定搜索模式,例如:

SELECT * FROM table_name WHERE column_name LIKE 'pattern';老实说,

它会返回所有 column_name 符合该模式的行。

为什么在数据库中用LIKE条件删除数据会带来如此巨大的风险?

使用 LIKE 删除数据的主要痛点

使用者痛点:

  • 误删关键业务数据导致业务中断。
  • 全表扫描引起的性能骤降,程序响应慢甚至崩溃。
  • 事务回滚困难,恢复成本高昂。
  • 模糊匹配规则不明确,给后续维护人员带来困惑。

1️⃣ 误删风险——模糊匹配的不确定性

LIKE 的本质是“可能匹配”。一条看似安全的条件可能一次性匹配数千、数万行数据:

DELETE FROM users WHERE name LIKE '%张%';

如果业务只想删除姓“张”的使用者。却把包含“张三丰”或“张家口”之类的记录也一起删掉,就会产生严重的业务损失。不过,

2️⃣ 性能瓶颈——全表扫描不可避免

LIKE '%xxx' 或者没有索引支撑的模糊匹配。会迫使数据库对每一行都做字符比较:

  • 大表执行时间从毫秒升至数分钟甚至更久。
  • I/O、CPU、锁竞争激增,导致其他业务请求被阻塞。
阅读全文
标签:条件