【发布时间】:2013-07-16 18:35:36
【问题描述】:
我有以下代码,它返回 10 个条目。现在好像很慢。
SELECT a.id
, a.patient_name
, a.phone
, p2.card_number
FROM patients as a
LEFT JOIN patient_insurance as p2
ON a.id=p2.patient
WHERE a.patient_name LIKE '%$_GET[term]%'
OR a.id LIKE '%$_GET[term]%'
OR a.phone LIKE '%$_GET[term]%'
OR p2.card_number LIKE '%$_GET[term]%'
LIMIT 10
我在患者表中有 12,107 个条目 patient_insurance 表中有 2,296 个条目
这是一个至强 2 处理器的 linux 服务器,具有 16GB 内存。本地托管
【问题讨论】:
-
可能你的表没有正确索引。是否应该按患者 ID 进行索引?
-
(旁白:您的代码易受 SQL 注入攻击。)任何索引?有什么方法可以重塑数据以避免通配符前缀?考虑全文搜索?
-
给我一个更好的代码,这个网站是本地托管的,甚至没有连接到互联网
-
@eggyal 你为什么不喜欢我:(
-
运行查询的解释并在此处发布结果。它将向我们展示查询在做什么。这篇文章没有足够的信息来解决它
标签: mysql left-join mysql-slow-query-log