【发布时间】:2019-06-15 18:03:00
【问题描述】:
这两个查询中的哪一个在 MySQL 和/或 ORACLE 中表现更好?
SELECT *
FROM User
WHERE name LIKE "%searchTerm%"
OR lastname LIKE "%searchTerm%"
OR email LIKE "%searchTerm%";
或
SELECT *
FROM User
WHERE CONCAT(name, " ", lastname, " ", email) LIKE "%searchTerm%";
我对第二个有强烈的感觉,但我想确定一下。
【问题讨论】:
-
Explain有什么用? -
它们很可能都会进行全表扫描,因此它们之间可能没有太大区别。在 Oracle 中,您可以在连接列上构建基于函数的索引,这可能会让您对索引进行全面快速扫描。 .
-
示例没有适用于 Oracle 的有效语法。必须使用单引号,并且
CONCAT只有两个参数并且必须嵌套或使用||。
标签: mysql oracle performance