问题标签 [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.
mysql - 缓存 MySQL UNION 查询
我读过 MySQL 可以缓存UNION's
,但同时我也读过..
避免在查询开始时使用注释(和空格)——查询缓存会进行简单的优化以检查查询是否可以被缓存。正如我提到的,只有 SELECT 查询被缓存——所以它查看查询的第一个字母,如果它是“S”,它会在缓存中继续查询查找,如果不是——跳过它。
来源:http ://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/
话虽如此,既然 UNION 以括号开头,它们是如何缓存的?
根据 mysql.com:
第一个字母不是“S”,所以会被跳过!?
我也看到你可以做这样的事情..
但是它会是一个sub-select
,因此,根据该页面,也不会被缓存。
那么UNION
s 是如何被缓存的呢?
php - 高效使用mysql表缓存复杂查询
我曾经在查询中有相当多的多个联接。
为了能够(至少)使用内置的 MySql Cache 功能,我编写了以下函数,它只是将原始查询编码为 base64,检查它是否存在且未过期。
这极大地提高了性能,并且我有优势在源代码中逐个查询地控制缓存时间。
但是在繁忙的时候,由于删除或选择时间太长,该表变得不可用。有什么建议可以让这个运行更快并避免前面提到的问题吗?
桌子:
功能:
mysql - mysql查询缓存命中率达到100%
我想知道这是否是一个问题,比如它是好事还是坏事。让查询缓存命中率达到 100% 通常很糟糕吗?
http://gameboxtools.com/uploads/imagehost/20120928064614983.png
nhibernate - NHibernate 查询缓存过期
是否可以配置 NHibernate 的查询缓存过期?
对于二级缓存,我可以从 中进行nhibernate.cfg.xml
,但我找不到 SQL 查询缓存的方法。
编辑:
php - 对所有用户使用相同的 MySQL 查询,而无需重新连接到数据库
我会尽量简单,所以我需要的是,执行一个 MySQL 查询(从表中选择记录),假设我每 5 分钟使用 cron 作业或其他任何方式生成查询,并将此查询或结果保存到文件或如果可能的话,一个全局变量,然后将它提供给所有客户端(即对所有用户使用相同的查询,而不必重新连接到该数据库。)现在我知道你们中的一些人会告诉我使用缓存,但我搜索了它,如果表发生变化,就会有新的缓存,而且我的表在不断变化,现在我不在乎表是否发生了变化,我只想为所有客户端提供相同的查询。那可能吗?请提出您的建议。谢谢。
当表被修改(插入、更新、删除等)时,缓存会自动过期。而且我的表是不断变化的,所以即使表被修改了也能保存缓存吗?还是我应该寻找不同的解决方案?
mysql - Yii - CActive 记录 - 如何解决服务器查询缓存
我正在为我的 webapp 使用 Yii 框架(使用 ACtiveRecord)。在 ACtiveRecord 的后面,框架管理来自数据库的所有查询。
我的问题是我在共享服务器上,事实证明服务器启用了查询缓存,这在 S 中是一个痛苦。我真的需要绕过查询缓存。FluSH 对我不起作用,因为我没有 RELOAD 权限。
如果我将每个 ActiveRecord 数据库提取用作粗略的 mySQL 查询,我想我可以将查询本身设置为禁用缓存,例如使用 NO_CACHE 标记,或使用涉及当前时间戳的错误查询术语(导致在每个查询中都是不同的查询文本)。
我对你们的问题是使用 Yii/ActiveRecord 方案的最佳方法是什么。我可以更改 findAll() 函数的实现吗?我有一个 CActiveRecord 的子类,所以如果有什么我可以在那里做的,那就太完美了。
对不起,很长的问题。宜兰
java - 用于标量查询的休眠缓存
我读过这篇文章。我无法按照这篇文章中的建议获得整个对象。我得到 MIN,MAX,Count 值。于是发了新帖。以下是我想要的和我拥有的。
- 我的 Spring 应用程序不会对 DB(MySQL) 进行任何更改。它只是读取数据。它不会知道对数据库中现有数据所做的更改。
我所有的查询都返回标量数据。不是整个对象。(例如
Select employee.name,office.address,MIN(employee.rec) from ... where..
:)我希望我的查询被缓存。所以我在休眠配置中启用了查询缓存。并添加
cacheable="true"
到我的命名查询中。
4.我启用了二级缓存。
5.为持久性类添加了以下注释。
6.我想每24小时刷新一次缓存。因此timeToLiveSeconds
在 ehcache.xml 中更新defaultCache
。
这是正确的方法吗?如何从查询缓存中知道查询是否命中二级缓存?
更新:我添加了统计信息,二级缓存没有命中/未命中。
mysql - MySQL刷新查询缓存
我有一个慢速数据库查询,第一次运行 18 秒,后续运行 4 秒。我正在尝试优化它的“冷启动”执行时间。但无法连续复制。
select SQL_NO_CACHE
指令没有帮助。
以下命令均无法使其再次运行 18 秒:
即使数据库重新启动也不会使它再次运行很长时间。
还有其他刷新缓存的命令吗?
表引擎是 InnoDB。
hibernate - 查询缓存休眠加载实体
谁能帮我解决这个问题。我使用 Infinispan 作为二级缓存,使用 Hibernate 作为 ORM。我已经打开了 enityt 和查询缓存。
我有两个查询,例如 Q1 是“从 BokkEntity b 中选择 b,其中 b.id < 5”,另一个像 Q2 是“从 BokkEntity b 中选择 b,其中 b.id < 7”
我第一次运行 Q1 它加载 5对象从持久存储到缓存中。第一次运行第二个查询会在缓存中加载 7 个对象。虽然前五个对象在两个查询中都很常见。根据我的理解,查询缓存总是只存储 id,然后如果实体缓存在查询缓存中,则在缓存中为对象(由 ids 引用)完成搜索。
所以我的问题是为什么在我第一次运行 Q2(在运行 q1 之后)时,两个 Q2 都再次加载所有对象并在实体缓存中覆盖这些对象。
我已经检查了查询缓存对于任何后续请求是否正常工作。即,如果我重新运行 Q1 或 Q2,则从缓存中访问数据。
这很紧急,我会感谢你的努力。
谢谢
米娜
java - MySQL 查询缓存在应用程序服务器中不起作用
以下是我的查询缓存设置,
当我从 MySQL 命令提示符执行查询时,缓存正在工作并且结果非常快。但是对于来自应用程序的相同查询,它不起作用。你能建议我解决这个问题吗?我在 Tomcat 服务器上使用 Java