javaweb读书笔记
软件的三大类型,单机,cs ,bs 海量数据可以保存缓存,减少查询数据库的次数,加快访问的速度,缓存的失效可以定期的失效或者在数据发生变化时失效,可以分为粗粒度的失效和细粒度的失效。 可以将数据库中本来是空数据的,做空数据的缓存保存在一定的数据结构中,查询的时候从缓存就知道数据中对应的值为空。 还有一种技术就是页面静态化,同时对数据量大和并发量高都有好处。页面静态化可以通过程序中的一些模板来实现如freemarker等 数据库优化:表结构优化,sql语法逻辑优化 分区:可以部分表达到分表类似的效果,就是将一张表中的数据按照一定的规则分到不同的区来保存,这样在查询数据时如果数据的范围在同一个区内就可以只对一个区的数据进行操作。这样的操作数据量更小,速度更快。对程序透明,程序不需要做任何改动 分表 按操作的类型分表,按字段的范围分表,按操作的时间段分区 索引的优化 使用存储过程代替直接操作,存储过程只编译一次 分离活跃的数据:比如说将论坛中活跃的用户保存到一张表,不活跃的用户分离到另一张表中,查询时先查默认表,查不到时再去不活跃的用户表中查询。 批量读取和延迟修改 减少操作的次数来提高效率 将3,5秒的查询合并到一次数据库查询来完成 延迟修改,先将一些修改保存到缓存中,一段时间统一同步到数据库中 读写分离 数据库服务器集群,数据库同步,将写操作由一台指定服务器完成