繁体   English   中英

MySQL查询缓存(2)

[英]MySQL Query Caching (2)

这不是问题,但是它属于站点优化。 我有11万家旅馆的记录。 当我使用SELECT某些查询时,它将从110k记录中提取数据。

如果我搜索星级超过3星级的酒店列表,则价格在100-300美元之间,并且在墨西哥城内。 假设我有45个匹配结果。

当我添加更多细化功能时,还有其他方法吗,它将仅从45个匹配项中提取数据,而不从110K数据中提取数据?

关键是索引,我的朋友。确保您拥有WHERE中使用的所有项目的索引,这将在选择时减少基数。

从另一方面来说... 110k行对于MySQL来说仍然是一个非常小的数据集,因此,如果您仍然没有在表上建立正确的索引,就不会造成太大的性能问题。

这更多取决于您的数据更新频率。

看到。

  1. MySQL查询缓存
  2. MySQL中的查询缓存
  3. 缓存问题MySQL或文件系统

我说的是,当我添加更多细化内容时,还有其他方法,它将仅从45个匹配项中提取数据,而不从110K数据中提取数据。

然后查看这45行并对其应用查询。

使用查询创建视图

Create view refined as select * from ....

然后在该视图中添加更多选择查询,例如

 Select * from refined where ...

首先,我倾向于同意Brian的观点 ,索引很重要。

  1. 检查哪种查询最常见,并在表上相应地构造多列索引。 请注意,索引中列的顺序确实很重要(因为索引是一棵树,所以第一列显示在树的根中,因此,如果您的查询不使用该列,则整个树都将无用)。

  2. 启用慢速查询日志以查看哪些查询实际上需要很长时间(如果有)或不使用索引,因此可以随着时间的推移改善索引。

话虽如此, 如果您的表数据大部分是读取的那么查询缓存将真正提高性能。 这是有关mysql查询缓存的有用文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM