首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使带有where条件mysql查询在大表上运行得更快

问如何使带有where条件mysql查询在大表上运行得更快
EN

Stack Overflow用户
提问于 2020-03-14 20:05:17
回答 1查看 43关注 0票数 1

我在mysql dB表上使用下面的2个查询,这个表大约有1,000万行。第一次计数是相当快的。第二个相当慢(可能要慢10倍)。

代码语言:javascript
复制
SELECT count(*) as count
from $table
WHERE SUBSTRING_INDEX(location, '>', 3) LIKE '%$mylocation%'
... show count


SELECT name, location, hotel, rating     
FROM $table
WHERE SUBSTRING_INDEX(location, '>', 3) LIKE '%$mylocation%'    
...loop to show results

location列具有类似- Spain>Canary Islands>Lanzarote>Some Resort的值

'location‘列上的索引集-表为MyISAM

有没有人知道如何加速第二个查询。我知道它们的工作原理有点不同。

EN

回答 1

Stack Overflow用户

发布于 2020-12-13 23:09:25

小贴士:为了避免使用像SELECT count(*) as count这样的东西,它会占用你服务器上的大量资源。建议:每次向数据库中插入内容时,将值存储到数据库列中

代码语言:javascript
复制
from $table

将它们存储在另一个数据库表中,并将其称为"Sums“,所有内容都插入到$table中,将"Sums”表的值更新为更高的数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60682528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档