问题标签 [query-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
311 浏览

nhibernate - NHibernate 最佳实践(使用大量静态数据查询缓存)

我们有一种情况,我们觉得我们没有充分利用 NHibernate 的功能,这会降低性能。对于这个问题,实际情况简化为“带有帖子的博客”示例。

一个博客站点,每个用户都可以拥有自己的博客,其中包含任意数量的帖子。因此,有一个用以下列定义的帖子表:

大多数博客很少更新,而少数是“类似推特”并经常更新。读比写多得多。

每个博客的首页显示最新的 5 个条目。

这将导致许多元素被放置在二级缓存和查询缓存中。

我们的问题是,99%+ 读取的博客的缓存查询结果被破坏了,因为很少有博客被频繁更新。

你其他人通常如何解决这个问题?最佳实践是什么?

0 投票
1 回答
342 浏览

java - 了解休眠缓存

如果我在对象类中有这个方法:

我穿上@cacheObjectEntry穿上Object

我是否还需要像这样将@cache 放在 getObjectEntries 上:

如果我特别添加,是否需要为每个查询定义缓存

?

0 投票
1 回答
236 浏览

java - 需要解决一个查询缓存问题

我正在开发一个复式记帐系统,我需要在顺序 ID 中插入没有任何间隙的过帐记录。由于所有数据库访问都将通过 Web 应用程序进行,因此我使用同步静态变量来处理 id 生成:

简而言之,该服务的生命周期与当前的 httprequest 相关联,并由 spring 容器管理,此外我确保整个事务在请求结束时提交。同步块将处理任何并发,因此在 id 的序列中不会发生任何间隙。这里最大的问题是增加了数据库访问的开销,用于选择与特定条件匹配的最后插入的记录。我不希望这种情况发生,所以我猜这里的解决方案是使用一个缓存,该缓存将在第一次被选中时保存最后插入的记录,因此生成 id 不需要数据库访问。我的问题:有没有开箱即用的休眠方式来解决这个问题?我是休眠新手,听说过查询缓存,但我不确定如何使用它。我不 我不希望缓存保存我使用此服务存储的每个值,我只需要它来存储与特定条件匹配的最后插入的条目。例如,如果我执行了五次插入,其中两个匹配相同的条件“X”,另外三个匹配条件“Y”,缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。

0 投票
1 回答
821 浏览

java - Hibernate 3.5.5,二级缓存配置

实施休眠监控后,我注意到休眠执行的查询比统计中的查询字符串表执行的查询多。

统计截图:

替代文字

我认为,实现休眠二级缓存,尤其是休眠查询缓存可以帮助我减少查询执行量。

我在网上搜索,找到了许多用于休眠缓存的提供程序类。但我没有成功实现它(infinispan,EhCache)。

我的问题是:

  • 你认为,在查询字符串表包含的查询少得多的情况下,减少这种查询执行量是最合适的方法吗?
  • 您是否有一些使用最新版本的休眠(3.5.5 最终版)实现此二级缓存的示例。

预先感谢您的帮助。

此致,

弗洛伦特,

0 投票
11 回答
42122 浏览

sql - 为什么插入查询有时需要这么长时间才能完成?

这是一个非常简单的问题。将数据插入表中通常工作正常,除了插入查询需要几秒钟的几次。(我不是要批量插入数据。)所以我为插入过程设置了一个模拟,以找出为什么插入查询有时需要超过 2 秒才能运行。Joshua 建议索引文件可能正在调整;我删除了 id (主键字段),但延迟仍然发生。

我有一个 MyISAM 表:(daniel_test_insert这个表开始完全是空的):

我将数据插入其中,有时插入查询需要超过 2 秒才能运行。 此表上没有读取- 仅由单线程程序串行写入。

我将完全相同的查询运行了 100,000 次,以找出查询有时需要很长时间的原因。到目前为止,这似乎是一个随机事件。

例如,这个查询花费了 4.194 秒(插入的时间很长):

(这是 SHOW PROFILE 命令的缩写版本,我把所有的列都扔掉了。)

现在更新有大量的上下文切换和轻微的页面错误。Opened_Tables 在此数据库上每 10 秒增加约 1 个(未用完 table_cache 空间)

统计:

  • MySQL 5.0.89

  • 硬件:32 Gigs 内存 / 8 核 @ 2.66GHz;突袭 10 个 SCSI 硬盘(SCSI II ???)

  • 我已经询问了硬盘驱动器和 RAID 控制器:没有报告错误。CPU 大约有 50% 空闲。

  • iostat -x 5(报告硬盘利用率低于 10%) top 报告负载平均约 10 1 分钟(我们的数据库机器正常)

  • 交换空间已使用 156k(32 gigs ram)

我不知道是什么导致了这种性能滞后。这不会发生在我们的低负载从属设备上,只会发生在我们的高负载主机上。这也发生在内存和 innodb 表中。有没有人有什么建议?(这是一个生产系统,所以没有什么异国情调!)

0 投票
2 回答
372 浏览

sql - Mysql to SQL Server:有没有类似于查询缓存的东西?

我正在尝试优化 SQL Server。我对 Mysql 有一些经验,通常有帮助的一件事是启用查询缓存,只要您运行相同的查询,它基本上会缓存查询结果。

SQL Server 上有类似的东西吗?你能指出这个功能的名称是什么吗?

谢谢!

0 投票
1 回答
1496 浏览

ruby-on-rails - 如何将 ActiveRecord 查询缓存与自定义 SQL 一起使用

在 Rails 应用程序的统计信息部分,我有一些自定义 SQL 调用,这些调用是使用模型代码中的 ActiveRecord::Base.execute() 调用的。他们返回各种聚合。

其中一些(相同的)查询在控制器中循环运行,并且似乎它们没有被 ActiveRecord 查询缓存缓存。

有没有办法在单个请求中缓存自定义 SQL 查询?

0 投票
2 回答
1328 浏览

ruby-on-rails - 为什么 Rails 查询缓存不起作用?

在我的开发环境中,我有一个生成数百个相同查询的请求:

为什么是这样?我认为 Rails 应该在每个请求的基础上默认启用查询缓存?

0 投票
2 回答
3888 浏览

sql - 自上次 SQL 查询以来,如何仅检索更新/新记录?

我被要求设计一个用于缓存 SQL 查询结果的类。调用类的查询方法会在第一时间查询并缓存整组结果;之后,每个子序列查询将只检索更新的部分,并将结果合并到缓存中。

如果要求该类是通用的,即不了解数据库和表,您有什么想法吗?

是否有可能,以及如何仅检索自上次查询以来的更新/新记录?

0 投票
3 回答
1891 浏览

php - MySQL 缓存和日期函数

我曾经在性能博客中读到,最好使用 PHP 的日期函数在 MySQL 查询中设置日期,而不是使用 curdate() 之类的 mysql 日期函数,因为 mysql 然后可以缓存查询或结果或类似的东西。有没有人对此有任何见解?它有水还是没有根据?

例子:

对比