首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InnoDB插入计数减慢

InnoDB插入计数减慢
EN

Stack Overflow用户
提问于 2011-07-15 12:50:10
回答 2查看 1.4K关注 0票数 1

我连续对mysql innoDB表进行批量插入,每秒插入比减慢。有些行为是-如果关闭数据插入器(java)应用程序,mysql做一些i/o操作一段时间。-添加一些插入,然后关闭mysql服务器,关闭操作持续时间太长。如果启动和停止mysql没有任何插入,启动和停止操作如此之快。-插入速度(在很大程度上)不取决于表中的数据量。如果重新启动mysql服务器,每秒插入与最后一次每秒重新启动插入类似。

我在论坛上读到了一些评论,不要继续添加,有两个插入之间的差距。有意义吗?为什么sql会慢下来?

查询显示像‘inno%’这样的变量,结果在下面

代码语言:javascript
复制
innodb_adaptive_flushing = ON
innodb_adaptive_hash_index = ON
innodb_additional_mem_pool_size = 20971520
innodb_autoextend_increment = 8
innodb_autoinc_lock_mode = 1
innodb_buffer_pool_instances = 1
innodb_buffer_pool_size = 268435456
innodb_change_buffering = all
innodb_checksums = ON
innodb_commit_concurrency = 0
innodb_concurrency_tickets = 500
innodb_data_file_path = ibdata1:50M:autoextend
innodb_data_home_dir = 
innodb_doublewrite = ON
innodb_fast_shutdown = 1
innodb_file_format = Barracuda
innodb_file_format_check = ON
innodb_file_format_max = Antelope
innodb_file_per_table = ON
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DSYNC
innodb_force_recovery = 0
innodb_io_capacity = 200
innodb_lock_wait_timeout = 50
innodb_locks_unsafe_for_binlog = OFF
innodb_log_buffer_size = 8388608
innodb_log_file_size = 268435456
innodb_log_files_in_group = 2
innodb_log_group_home_dir = ./
innodb_max_dirty_pages_pct = 75
innodb_max_purge_lag = 0
innodb_mirrored_log_groups = 1
innodb_old_blocks_pct = 37
innodb_old_blocks_time = 0
innodb_open_files = 300
innodb_purge_batch_size = 20
innodb_purge_threads = 0
innodb_read_ahead_threshold = 56
innodb_read_io_threads = 4
innodb_replication_delay = 0
innodb_rollback_on_timeout = OFF
innodb_spin_wait_delay = 6
innodb_stats_on_metadata = ON
innodb_stats_sample_pages = 8
innodb_strict_mode = ON
innodb_support_xa = ON
innodb_sync_spin_loops = 30
innodb_table_locks = ON
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 10000
innodb_use_native_aio = OFF
innodb_use_sys_malloc = ON
innodb_version = 1.1.1
innodb_write_io_threads = 4

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-21 06:55:56

减速原因是插入操作存储在缓存(脏页)上,并定期写入硬盘驱动器.在脏页内存满之前,插入操作是快速的,然后缓存是满的,插入速度瓶颈磁盘被写入(I/O)。您可以在sql下面显示脏页大小“修改后的db页面”

代码语言:javascript
复制
show engine innodb status
票数 0
EN

Stack Overflow用户

发布于 2011-07-15 12:58:29

默认情况下,InnoDB在自动提交模式下工作,这意味着每次插入都需要写入磁盘两次。使用扩展插入(a.k.a.(多行插入)和将多个连续插入封装到事务中可以提高性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6707180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档