hi everyone,
现在我一张表有两百万条数据,使用ehcache作为缓存,实体设置了延迟加载,但是查询数据非常慢,请问有什么优化手段。
PS:我在考虑是否使用jdbcTemplate,或者直接使用jdbc
可以考虑既然是查询,首先要考虑索引的使用
2百万不是大数据量,不用jdbc、直接用hibernate就可以搞定
前提是建立好索引
看看你的查询条件中最常用的约束条件是哪些(where后的语句)
对应的列有没有建立索引、怎么建立高效的索引、怎么在查询中使用索引
怎么优化查询语句、怎么进行表切割
……
这是一个很庞大的问题
如果可以建议大致描述一下表结构,把查询语句粘贴出来。。。
你难道一次查询把2百万条数据全部读取?
没这样的必要吧,谁也无法一次浏览2百万条数据,可以考虑分页,一次读一页的数据,点一下页时,再从数据库读取下一页的数据。这样再结合ehcache缓存也许比较合适,每读取一页的数据,就自动把它放入缓存中,这样再有客户读取同样的数据时,就直接从缓存中读取,减轻了数据库端的压力。