Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何在运行java web应用程序的服务器端缓存MySQL查询?_Java_Mysql_Caching - Fatal编程技术网

我们如何在运行java web应用程序的服务器端缓存MySQL查询?

我们如何在运行java web应用程序的服务器端缓存MySQL查询?,java,mysql,caching,Java,Mysql,Caching,例如: 如果大多数客户要求填写需要选择州和城市的表格。那么,如何在服务器端缓存该查询呢。因为州或城市名称几乎不会更改,所以最好将它们缓存起来 Table 1: state_name state_id __________ ________ state1 1 state2 2 Table 2: city_name city_id state_id _________ _______ ________ city1 1

例如: 如果大多数客户要求填写需要选择州和城市的表格。那么,如何在服务器端缓存该查询呢。因为州或城市名称几乎不会更改,所以最好将它们缓存起来

Table 1:
state_name  state_id
__________  ________
state1         1
state2         2

Table 2:
city_name   city_id   state_id
_________   _______   ________
city1          1         1
city2          2         1
city3          3         2
创建州的
列表
和[城市、州]对的
地图
,并将其作为静态只读数据放在服务器上。启动时从数据库加载它

我推荐一个
WeakHashMap
作为您的实现。如果绝对必要,它将给GC一个逐出值的机会

州的数量不会改变,但城市列表可能相当大。

创建州的
列表和[城市,州]对的
地图,并将其作为静态只读数据放在服务器上。启动时从数据库加载它

我推荐一个
WeakHashMap
作为您的实现。如果绝对必要,它将给GC一个逐出值的机会


州的数量不会改变,但城市列表可能相当大。

默认情况下,Mysql将在其查询缓存中缓存查询-


缓存的大小当然是有限的,因此如果运行其他查询,结果可能会被逐出-但是如果频繁执行此查询,mysql查询缓存可能足以满足您的需要。

mysql默认情况下将在其查询缓存中缓存查询-


当然,缓存的大小是有限的,因此如果运行其他查询,结果可能会被逐出-但是如果频繁执行此查询,mysql查询缓存可能足以满足您的需要。

能否提供有关您的环境的更多信息?在服务器端缓存查询结果的方法大约有10亿种……您能提供有关您的环境的更多信息吗?在服务器端缓存查询结果的方法大约有10亿种……这(启动时加载)正是我们使用config对象所做的。然后我们做一些事情,比如
config.getProperties(“states”)
(我们的“config”不是java
Properties
对象,但我们还是决定使用getProperties作为方法名)。我们的配置实际上是从各种来源加载的-数据库,一些
.properties
,等等-但是程序的其余部分并不关心这些来源。我们还有一个“重新加载”方法,以防这些内容发生任何更改,因此我们不必重新启动以获取更改。@duffymo请您用上述数据给出一个示例。对不起,我没有在命令上发布代码。您应该知道如何使用JDBC进行选择,并将结果映射到列表或映射中。如果你不这样做,你就不应该编写这个应用程序。这(启动时加载)正是我们使用配置对象所做的。然后我们做一些事情,比如
config.getProperties(“states”)
(我们的“config”不是java
Properties
对象,但我们还是决定使用getProperties作为方法名)。我们的配置实际上是从各种来源加载的-数据库,一些
.properties
,等等-但是程序的其余部分并不关心这些来源。我们还有一个“重新加载”方法,以防这些内容发生任何更改,因此我们不必重新启动以获取更改。@duffymo请您用上述数据给出一个示例。对不起,我没有在命令上发布代码。您应该知道如何使用JDBC进行选择,并将结果映射到列表或映射中。如果你没有,你就不应该写这个应用。