如何解决mysql 在有 150 万行的表上的查询速度
从包含 150 万行的表中获取查询结果大约需要 5 秒。查询是“select * from table where code=x”
有没有可以提高速度的设置?或者我应该跳到除 MySQL 之外的另一个数据库吗?
解决方法
您可以索引 code
列。请注意,权衡是在现有行上插入新行或更新 code
列会减慢一点,因为索引也需要更新。无论如何,您应该对改进进行基准测试,以确保它值得。
return view('home',compact('locations','peopletypes','eventtypes'));
-- 需要 WHERE code=x
INDEX(code)
当许多列都很大时:大列被“非记录”存储。因此他们需要更长的时间来获取。所以,明确列出你真正需要的列,希望能省去一些庞大的列。
当涉及到 SELECT *
或 GROUP BY
时,有时最好这样做
LIMIT
也就是说,首先尽可能简单地找到 id,然后 SELECT lots of columns
FROM ( SELECT id FROM t WHERE ... group-by or limit ) AS x
JOIN t AS y USING(id)
etc.
返回到原始表和其他表。 (您提出的情况并非如此,但我担心您过于简化了。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。