数据库部分
-
对需要进行查询的字段建立索引,where语句中如果有2个字段,则对该两个字段进行建立联合索引;
-
如果有模糊查询,尽量不使用like % 这种模式,这种会忽略索引,使用全文搜索,可以使用location进行模糊查询
-
修改数据库的引擎,如果只是大部分进行查询,没有大规模的修改等操作,可以用MyISAM引擎,这种引擎对数据库的插入以及查询操作特别快,但是不支持事务,常规的InnoDB引擎可以支持事务,但是相应的插入以及查询的速度就慢下来了
使用redis数据库
-
记住不要使用mybatis的分页插件,因为经过测试,mybatis的分页插件中使用了count(0)语句统计所有的查询的数量,这个语句严重拖慢了查询的速度,大概有3-5s的时间,这个不能忍。
-
使用redis数据库,一次查询出所有的结果,并将结果放入redis数据库中,在control界面进行分页,使用list进行分页,每次从list中取出一页的内容,传到web页面;记住,不能一次将所有的数据全部传入web界面,这样web界面的响应加载时间会特别长,速度非常慢;这样做,第一次查询的时间大概2-3s,但是翻页的结果是直接从redis数据库中取的,所以响应时间特别快。
-
使用redis数据库,需要设置redis数据库的大小,当所需内存超过最大的maxmemmory的时候,将配置maxmemory-policy 的设置改为allkeys-lru
</