这是我的表:
// tags
+----+-----------+-----------------------------------------+
| id | name | description |
+----+-----------+-----------------------------------------+
| 1 | function | some explanations about function .. |
| 2 | array | some explanations about arrqay .. |
| 3 | HTML | some explanations about HTML .. |
+----+-----------+-----------------------------------------+
现在我试图制作一个自动完成的框,其中显示了一些标签。这是我目前的代码:
// current value of the input which has been sent by an ajax request
$input_value = $_POST['q'];
// DB connection is here
$stmt = $db->prepare("SELECT name, description
FROM tags
WHERE name LIKE CONCAT('%', ?, '%') OR description LIKE CONCAT('%', ?, '%')
LIMIT 6");
$stmt->execute(array($input_value,input_value));
但我的疑问变慢了。例如,有时返回结果需要1秒。因为我的表逐渐变大,所以我需要改进我的查询。有什么想法吗?
注意我分别在name
和description
列上有两个索引。