磁盘读写和数据库读写哪个效率更高?磁盘读写与数据库的关系?为什么数据库读写速度比一般文件系统快

1.把IO动作尽可能的在自己的BUFFER里面实现, 对于必须的物理IO操作, 通过对要写入的数据的预先组织(预先读取, 按物理顺序排队, 分块写入, 小数据量写入等操作实现, 比如对P-LOG和LOGIALLOG). 2.对于物理IO动作, DB可以通过RAW/COOKED设备来实现. 在RAW设备上操作的话, DB自己管理设备以及数据在RAW设备上的存储细节,也就是说DB对于实际的物理存储是了解的. 比如说, 有2块DEVICE, 上面各自分别有2个RAWDEVIICES, 那么DB可以用2个THREAD在2个DEVICE上面同时动作, 对于同一DEVICE上面的LOGICALVOLUM, DB对数据的预先安排可以大大提高IO性能. 而文件系统上的IO由于有DOUBLE-BUFFER, 所以数据库所有对IO的优化基本上没作用(因为DB的BUFFER通常比OS的IOBUFFER大的多, 当DBBUFFER对应的OSBUFFER映射失败的时候, IO就要通过物理IO来完成了, 并且DB并不知道实际的IO操作在物理设备上的实现细节(比如文件系统在物理设备上的位置)). 3.所有物理的IO动作最后还是对应到了READ/WRITE操作, 只不过在RAW方式下的READ/WRITE是对设备直接操作的, 不需要借助于文件系统实现.