IT外包网管服务,优化数据库插入或更新大量数据的性能

发布者:上海IT外包来源:http://www.lanmon.net点击数:1306

      蓝盟IT小贴士,来喽!
  SQL运行效率高的主要原因是,整合后日志量( MySQL binlog和innodb事务传递日志)减少,日志笔刷数据量和频率减少,效率提高。 通过合并SQL语句,可以减少分析SQL语句的次数并减少网络传输的IO。
  事务在INSERT操作期间在MySQL中建立事务,并在事务中执行实际插入操作,从而提高了数据插入效率。 事务处理降低了创建事务处理的成本,并且在提交所有插入之前不会运行。

      
  由于插入数据库时需要维护索引数据,因此无序记录会增加维护索引的成本。 可以引用InnoDB使用的b-tree索引,如果每次插入记录时都位于索引的***面上,则索引定位高效,如果插入的记录在索引中间插入的索引调整较少,则b-tree需要进行分裂合并等处理 在消耗相对较多的计算资源的同时,对插入记录的索引定位效率降低,在数据量较大的情况下会发生频繁的盘操作。
  本节提供同时使用上述三种方法来优化INSERT效率的测试。
  测试结果表明,整合数据事务处理的方法在数据量较少时性能显着提高,而在数据量较大时( 1千万以上)性能会急剧下降。 这是因为数据量超过了innodb_buffer的容量,每次发现索引时磁盘的读写操作变多,性能下降。 整合数据事务的有序数据的方式即使数据量以上也是良好的,在数据量多的情况下,有序数据索引的定位很方便,不需要频繁地读写磁盘,因此能够维持高性能。

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部