关于Java操作系统、数据库缓存的分类介绍
缓存处理是Java中的重要技术分之,适当处理好缓存可以提升整体性能和速度,但是缓存太多也会占用过多空间,要想处理好缓存,首先要了解缓存是什么,今天学码思Java培训老师带来关于Java操作系统、数据库缓存的分类介绍,一起来看一下。
数据库缓存
1、重要性
数据库通常是企业应用系统非常核心的部分
数据库保存的数据量通常非常庞大
数据库查询操作通常很频繁,有时还很复杂
以上原因造成数据库查询会引起非常频繁的磁盘I/O读取操作,迫使CPU挂起等待,数据库性能极度低下
2、缓存策略
a、Query Cache
以SQL作为key值缓存查询结果集
一旦查询涉及的表记录被修改,缓存就会被自动删除
设置合适的Query Cache会极大提高数据库性能
Query Cache并非越大越好,过大的Qquery Cache会浪费内存.
MySQL: query_cache_size= 128M
b、Data Buffer
data buffer是数据库数据在内存中的容器
data buffer的命中率直接决定了数据库的性能
data buffer越大越好,多多益善
MySQL的InnoDB buffer:innodb_buffer_pool_size = 2G
MySQL建议buffer pool开大到服务器物理内存60-80%
操作系统缓存
1、文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理
2、当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度
3、Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度
4、特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk
5、Cache策略
Oracle的raw device(裸设备) – 直接抛弃文件系统
MySQL的InnoDB: innodb_flush_method = O_DIRECT
关于Java操作系统、数据库缓存的分类介绍就位大家介绍到这里,在实际的Java应用开发过程中,缓存部分的封装难度要比其他的大很多,关于缓存,我们的学码思Java培训课程中会专门开一个章节来讲,具体操作和应对要根据实际项目大小和应用需求来决定。