工作中遇到的一个实际问题。
问题如下:
长时间,大量插入数据的速度慢的问题。
7*24小时的不间断想数据库中插入数据,单表的插入数据量平均目前平均35条/秒。有
40多个单表表都需要插入。插入数据的同时还要对40多个单表进行更新和查询操作。
如此频繁的对数据库进行操作的情况下,数据库的速度已经不能满足我们的需求了。
经过了一系列的SQL文,内存设置,缓存设置之后还是无法满足。
最后经过在linux下top进行分析,发现原来是orcale的I/O读写速度问题。并且硬盘处
理速度不及时还导致CPU %WA等待。
经过统计情况如下:
插入量:40*35=1400条/秒
查询量:40*100=4000条/秒
更新量:40*10=400条/秒
删除量:1400*66%=900条/秒
每秒处理共约:6700条数据。
这样一个int占4个字节,一个double占8个字节,一个varchar(200)占200个字节.....
一条数据有 800~1400个字节 按照平均一条数据1024个字节来算,就是1条数据占用
1Kb的空间。
那么硬盘最少要有6700*1Kb =6.7M 的读写速度。本来我们用的硬盘是7200的,极限的
读写速度是30M-40M/秒左右,为什么6.7M左右就承受不住了呢?
经过分析认为,硬盘的测试速度只是单一的读写。但是在频繁的读写删除面前远远达不到那个速度(磁头不停的切换,扇区不停的反转)
注意:这里请不要长生误区:6.7M是每秒的读写速度,由于我做了优化每秒还会删除插入数据的66%,这样最后保存到磁盘的每秒只有400K左右。
一天40G的数据 平均每秒400多K。
解决方案:表分区 + 磁盘阵列 + RAID0. 理论上能提高几十倍甚至几百倍的速度。
具体实现细节。。。略。。。。。。。
如果有人有兴趣知道可以留言探讨。
分享到:
相关推荐
以上内容涵盖了Android平台上的基本文件I/O操作,包括内部存储、外部存储、数据库、键值存储、内容提供者以及安全性和版本适应性策略。理解并熟练掌握这些技术,能够帮助开发者有效地管理和处理应用中的各种数据。
6. **高I/O需求场景**:DirectPath I/O特别适用于那些对I/O性能有极高要求的应用场景,如数据库服务器直接读写连接存储的HBA(Host Bus Adapter)以获得更优性能。 7. **BIOS配置**:需要在BIOS中开启Intel VT-d或...
### 数据库I/O系统知识点详解 #### 一、存储设备与磁盘存储技术 数据库I/O系统的性能在很大程度上取决于其存储设备的选择和技术的应用。在本章节中,我们将重点介绍几种常见的存储设备及其特点。 **1.1 存储层次*...
- **read()** 和 **write()** 函数:这些函数用于读写文件,当使用O_DIRECT标志打开的文件时,它们会执行直接I/O操作。 为了确保直接I/O的高效执行,需要注意以下几点: 1. **数据对齐**:为了减少数据传输过程中...
《查询优化解决“车站系统”数据库I/O冲突》 在铁路信息系统中,车站系统的数据库管理是关键环节,尤其是在处理大量货物运输业务时,高效的数据库查询优化至关重要。文章以实际案例——长沙北站和郑州东站的内勤...
例如,Oracle数据库、MongoDB等都可能利用Direct I/O来提升读写速度。 总结来说,Linux Direct I/O技术是一种提高系统I/O性能的有效手段,但需要谨慎使用,因为它涉及到更复杂的编程模型,并且可能会对系统其他方面...
《Oracle数据库I/O调优:理解与实践》 在Oracle数据库管理中,I/O性能是决定系统整体效率的关键因素之一。"Calibrate_IO.zip_indeed6gn_oracle_oracle dba" 提供了一个关于Oracle存储I/O调优的专业资料,主要针对...
将不同表的数据文件分开存放,可以有效地分散I/O负载,从而提高读写性能。 **2. 调整checkpoint** InnoDB会定期执行checkpoint操作以确保数据的一致性和持久性。合理调整checkpoint的时间间隔,可以平衡数据的安全...
Oracle数据库系统中输入输出(I/O)的设计和分析是确保数据库性能和响应速度的关键。本文将从I/O需求、数据文件I/O性能、I/O优化策略以及如何调整数据文件I/O等方面进行深入探讨。 首先,我们需要了解I/O设计在...
Solr 是一款基于 Lucene 的全文检索引擎,主要应用于站内搜索,解决 MySQL 数据库 I/O 读写瓶颈问题,提高搜索效率。下面是 Solr 相关知识点: 1. Solr 的应用场景:Solr 主要应用于站内搜索,解决 MySQL 数据库 I/...
2. **磁盘I/O性能**:大量的并发写入会增加磁盘I/O负载,可能导致磁盘响应速度下降,进而影响整体性能。解决这个问题可能需要优化磁盘子系统,例如使用SSD代替HDD,或者采用RAID配置提高读写速度。 3. **缓存策略**...
在优化数据库磁盘IO时,需要监控数据库的性能,检查系统的I/O问题,使用V$FILESTAT确定oracle文件I/O的进程,分布I/O减少磁盘竞争,避免动态空间管理,确定动态扩展,分配分区,避免回滚段的动态空间管理,减少迁移...
1. **磁盘I/O监控**:使用`sys.dm_io_virtual_file_stats` DMV可获取每个文件的读写操作数和等待时间,从而了解IO性能。同时,结合操作系统工具(如 PerfMon)监控物理读写速度和队列深度。 2. **索引性能**:索引...
首先,手册会讲解Oracle数据库I/O基础,包括磁盘I/O体系结构、RAID技术、存储子系统以及Oracle的数据块和表空间管理。理解这些基础知识对于识别性能瓶颈和制定调优策略至关重要。 其次,书中将详细介绍Oracle的I/O...
MySQL数据库在处理数据时,涉及两种关键的读写方式:日志顺序读写(日志I/O)和数据文件随机读写(数据I/O)。这两种读写方式对于数据库的性能和稳定性至关重要,尤其是在高并发、大数据量的场景下。下面我们将深入...
数据文件I/O是数据库操作的基础,它直接影响到数据库的响应速度和整体性能。本讲主要关注Oracle数据库在处理数据文件I/O时涉及的关键因素和参数。 首先,存储系统是影响数据文件I/O性能的基石。磁盘的速度、数量、...
在大型系统中,如网络服务器和数据库管理系统,异步I/O往往能带来显著的性能提升。 总结来说,文件同步与异步读写是操作系统中处理I/O操作的两种策略,各有优劣。理解并掌握这两种方法,对于优化程序性能和提高系统...
软件层次结构中的 I/O 软件层次结构 在计算机系统中,I/O 软件...在实际应用中,I/O 软件层次结构可以应用于各种场景,例如文件系统、网络通信、数据库管理等。了解 I/O 软件层次结构对开发高效的 I/O 操作非常重要。
Oracle 数据库参数主要包括磁盘 I/O、回滚段、redo 日志、SGA 参数等。 磁盘 I/O 是 Oracle 数据库的性能瓶颈之一。为了优化磁盘 I/O,可以采取以下策略: 1. 使用分布 I/O 减少磁盘竞争,避免多个进程同时读写同...