0

我正在为我的画廊做列表(使用下一个/上一个)。问题是,如果我在每次更改照片时选择下一个/上一个,查询最多需要 0.1 秒。这很糟糕,考虑到两件事 a) 访客会浏览画廊 b) 我的其余查询时间为 0.005 秒

但是,如果我在一个查询中选择所有照片 ID,我会得到 1000 个结果(查询时间约为 0.15 秒)。我可以从中构建树并在其中轻松找到下一个/上一个。但这需要记忆。在我的服务器上,我遇到了性能问题(CPU,而不是内存),所以它可能是更好的解决方案。我对吗 ?

如果是这样,我可以如何或在哪里存储那棵树?我可以有许多不同的,因为所有图像都在一个表中,并且每个用户(例如他们上传的照片)和不同的顺序(时间,类型,分数......)浏览。所以我不能预先缓存所有的树,它会很大(它可以改变,而不同的用户几乎立即上传照片)。当他打开特定的画廊时,我想为每个用户构建新树。将它存储在 SESSION 中似乎是“愚蠢的”,因为那不是针对这样的事情进行优化的......还有别的东西吗?

4

1 回答 1

0

通常,MySQL 查询缓存是加快查询速度的一种快速方法SELECT。查询缓存将保存最近查询的结果,并在重复相同查询时返回它们。这意味着,在您第一次运行查询之后,后续相同的查询会快得多。查询缓存不返回陈旧数据。当表被修改时,查询缓存中的任何相关条目都会被刷新。

来源:http ://dev.mysql.com/doc/refman/5.1/en/query-cache.html

要检查是否正在使用查询缓存,请执行以下查询:

SHOW VARIABLES LIKE 'query_cache_type';

如果值为OFF0,请将这两行添加到您的 MySQL 配置中:

query_cache_type = 1
query_cache_size = 64M

之后,重新启动您的 MySQL 服务器。

于 2013-06-14T10:24:53.717 回答