Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
慢速插入mysql_Mysql_Sql_Performance_Innodb - Fatal编程技术网

慢速插入mysql

慢速插入mysql,mysql,sql,performance,innodb,Mysql,Sql,Performance,Innodb,我对InnoDb表的插入速度非常慢(250万条注释)。但是为什么呢? 以下是调试信息: 服务器:英特尔®核心™ i7-920 24 GB DDR3 RAMFestplatten2 x 750 GB SATA 3 GB/s硬盘驱动器 168.02查询/秒 CREATE TABLE IF NOT EXISTS `bysr_customers` ( `customerID` int(11) NOT NULL AUTO_INCREMENT, `OdnoklasID` varchar(255) N

我对InnoDb表的插入速度非常慢(250万条注释)。但是为什么呢? 以下是调试信息:

服务器:英特尔®核心™ i7-920 24 GB DDR3 RAMFestplatten2 x 750 GB SATA 3 GB/s硬盘驱动器 168.02查询/秒

CREATE TABLE IF NOT EXISTS `bysr_customers` (
  `customerID` int(11) NOT NULL AUTO_INCREMENT,
  `OdnoklasID` varchar(255) NOT NULL,
  `Login` varchar(32) DEFAULT NULL,
  `cust_password` varchar(255) NOT NULL,
  `Email` varchar(255) DEFAULT NULL,
  `first_name` varchar(255) DEFAULT NULL,
  `last_name` varchar(255) DEFAULT NULL,
  `kopilka` int(110) NOT NULL DEFAULT '0',
  `subscribed4news` int(11) DEFAULT NULL,
  `custgroupID` int(11) DEFAULT NULL,
  `addressID` int(11) DEFAULT NULL,
  `reg_datetime` datetime DEFAULT NULL,
  `ActivationCode` varchar(16) NOT NULL DEFAULT '',
  `CID` int(11) DEFAULT NULL,
  `affiliateID` int(11) NOT NULL,
  `affiliateEmailOrders` int(11) NOT NULL DEFAULT '1',
  `affiliateEmailPayments` int(11) NOT NULL DEFAULT '1',
  `actions` text NOT NULL,
  `area` text NOT NULL,
  `city` text NOT NULL,
  `street` text NOT NULL,
  `house` text NOT NULL,
  `build` text NOT NULL,
  `room` text NOT NULL,
  `phone` text NOT NULL,
  `fake` int(10) NOT NULL,
  PRIMARY KEY (`customerID`),
  UNIQUE KEY `ok_index` (`OdnoklasID`),
  KEY `AFFILIATEID` (`affiliateID`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3504023 ;



INSERT INTO bysr_customers (OdnoklasID, first_name, last_name, custgroupID, reg_datetime, CID, affiliateEmailOrders, affiliateEmailPayments, fake)  VALUES ('fake_4', '2', '3', '1', '2012-02-22 16:42:54', '1', '1', '1', '0');


mysql> SHOW profile FOR QUERY 7;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000043 |
| checking permissions | 0.000007 |
| Opening tables       | 0.000044 |
| System lock          | 0.000004 |
| Table lock           | 0.000004 |
| init                 | 0.000018 |
| update               | 7.521551 |
| end                  | 0.000011 |
| query end            | 0.000006 |
| freeing items        | 2.573892 |
| logging slow query   | 0.000013 |
| logging slow query   | 0.000035 |
| cleaning up          | 0.000006 |
+----------------------+----------+
13 rows in set (0.00 sec)
auto_increment_increment    1
auto_increment_offset   1
autocommit  ON
automatic_sp_privileges ON
back_log    50
basedir /usr/
big_tables  OFF
binlog_cache_size   32768
binlog_direct_non_transactional_updates OFF
binlog_format   STATEMENT
bulk_insert_buffer_size 8388608
character_set_client    utf8
character_set_connection    utf8
character_set_database  cp1251
character_set_filesystem    binary
character_set_results   utf8
character_set_server    cp1251
character_set_system    utf8
character_sets_dir  /usr/share/mysql/charsets/
collation_connection    utf8_general_ci
collation_database  cp1251_general_ci
collation_server    cp1251_general_ci
completion_type 0
concurrent_insert   1
connect_timeout 10
datadir /var/lib/mysql/
date_format %Y-%m-%d
datetime_format %Y-%m-%d %H:%i:%s
default_week_format 0
delay_key_write ON
delayed_insert_limit    100
delayed_insert_timeout  300
delayed_queue_size  1000
div_precision_increment 4
engine_condition_pushdown   ON
error_count 0
event_scheduler OFF
expire_logs_days    10
flush   OFF
flush_time  0
foreign_key_checks  ON
ft_boolean_syntax   + -><()~*:""&|
ft_max_word_len 84
ft_min_word_len 4
ft_query_expansion_limit    20
ft_stopword_file    (built-in)
general_log OFF
general_log_file    /var/lib/mysql/Ubuntu-1104-natty-64-minimal.log
group_concat_max_len    1024
have_community_features YES
have_compress   YES
have_crypt  YES
have_csv    YES
have_dynamic_loading    YES
have_geometry   YES
have_innodb YES
have_ndbcluster NO
have_openssl    DISABLED
have_partitioning   YES
have_query_cache    YES
have_rtree_keys YES
have_ssl    DISABLED
have_symlink    YES
hostname    Ubuntu-1104-natty-64-minimal
identity    0
ignore_builtin_innodb   OFF
init_connect     
init_file    
init_slave   
innodb_adaptive_hash_index  ON
innodb_additional_mem_pool_size 1048576
innodb_autoextend_increment 8
innodb_autoinc_lock_mode    1
innodb_buffer_pool_size 10737418240
innodb_checksums    ON
innodb_commit_concurrency   0
innodb_concurrency_tickets  500
innodb_data_file_path   ibdata1:10M:autoextend
innodb_data_home_dir     
innodb_doublewrite  ON
innodb_fast_shutdown    1
innodb_file_io_threads  4
innodb_file_per_table   OFF
innodb_flush_log_at_trx_commit  1
innodb_flush_method  
innodb_force_recovery   0
innodb_lock_wait_timeout    50
innodb_locks_unsafe_for_binlog  OFF
innodb_log_buffer_size  1048576
innodb_log_file_size    5242880
innodb_log_files_in_group   2
innodb_log_group_home_dir   ./
innodb_max_dirty_pages_pct  90
innodb_max_purge_lag    0
innodb_mirrored_log_groups  1
innodb_open_files   300
innodb_rollback_on_timeout  OFF
innodb_stats_on_metadata    ON
innodb_support_xa   ON
innodb_sync_spin_loops  20
Variable_name    Value
innodb_table_locks  ON
innodb_thread_concurrency   8
innodb_thread_sleep_delay   10000
innodb_use_legacy_cardinality_algorithm ON
insert_id   0
interactive_timeout 28800
join_buffer_size    131072
keep_files_on_create    OFF
key_buffer_size 2147483648
key_cache_age_threshold 300
key_cache_block_size    1024
key_cache_division_limit    100
language    /usr/share/mysql/english/
large_files_support ON
large_page_size 0
large_pages OFF
last_insert_id  0
lc_time_names   en_US
license GPL
local_infile    ON
locked_in_memory    OFF
log OFF
log_bin OFF
log_bin_trust_function_creators OFF
log_bin_trust_routine_creators  OFF
log_error   /var/log/mysql/error.log
log_output  FILE
log_queries_not_using_indexes   OFF
log_slave_updates   OFF
log_slow_queries    ON
log_warnings    1
long_query_time 2.000000
low_priority_updates    OFF
lower_case_file_system  OFF
lower_case_table_names  0
max_allowed_packet  16777216
max_binlog_cache_size   18446744073709547520
max_binlog_size 104857600
max_connect_errors  10
max_connections 151
max_delayed_threads 20
max_error_count 64
max_heap_table_size 1073741824
max_insert_delayed_threads  20
max_join_size   18446744073709551615
max_length_for_sort_data    1024
max_prepared_stmt_count 16382
max_relay_log_size  0
max_seeks_for_key   18446744073709551615
max_sort_length 1024
max_sp_recursion_depth  0
max_tmp_tables  32
max_user_connections    0
max_write_lock_count    18446744073709551615
min_examined_row_limit  0
multi_range_count   256
myisam_data_pointer_size    6
myisam_max_sort_file_size   9223372036853727232
myisam_mmap_size    18446744073709551615
myisam_recover_options  BACKUP
myisam_repair_threads   1
myisam_sort_buffer_size 8388608
myisam_stats_method nulls_unequal
myisam_use_mmap OFF
net_buffer_length   16384
net_read_timeout    30
net_retry_count 10
net_write_timeout   60
new OFF
old OFF
old_alter_table OFF
old_passwords   OFF
open_files_limit    1024
optimizer_prune_level   1
optimizer_search_depth  62
optimizer_switch    index_merge=on,index_merge_union=on,index_merge_so...
pid_file    /var/lib/mysql/Ubuntu-1104-natty-64-minimal.pid
plugin_dir  /usr/lib/mysql/plugin
port    3306
preload_buffer_size 32768
profiling   ON
profiling_history_size  15
protocol_version    10
pseudo_thread_id    79658
query_alloc_block_size  8192
query_cache_limit   10485760
query_cache_min_res_unit    4096
query_cache_size    314572800
query_cache_type    ON
query_cache_wlock_invalidate    OFF
query_prealloc_size 8192
rand_seed1   
rand_seed2   
range_alloc_block_size  4096
read_buffer_size    131072
read_only   OFF
read_rnd_buffer_size    262144
relay_log    
relay_log_index  
relay_log_info_file relay-log.info
Variable_name    Value
relay_log_purge ON
relay_log_space_limit   0
report_host  
report_password  
report_port 3306
report_user  
rpl_recovery_rank   0
secure_auth OFF
secure_file_priv     
server_id   0
skip_external_locking   ON
skip_name_resolve   OFF
skip_networking OFF
skip_show_database  OFF
slave_compressed_protocol   OFF
slave_exec_mode STRICT
slave_load_tmpdir   /tmp
slave_net_timeout   3600
slave_skip_errors   OFF
slave_transaction_retries   10
slow_launch_time    2
slow_query_log  ON
slow_query_log_file /var/log/mysql/mysql-slow.log
socket  /var/run/mysqld/mysqld.sock
sort_buffer_size    268435456
sql_auto_is_null    ON
sql_big_selects ON
sql_big_tables  OFF
sql_buffer_result   OFF
sql_log_bin ON
sql_log_off OFF
sql_log_update  ON
sql_low_priority_updates    OFF
sql_max_join_size   18446744073709551615
sql_mode     
sql_notes   ON
sql_quote_show_create   ON
sql_safe_updates    OFF
sql_select_limit    18446744073709551615
sql_slave_skip_counter   
sql_warnings    OFF
ssl_ca   
ssl_capath   
ssl_cert     
ssl_cipher   
ssl_key  
storage_engine  MyISAM
sync_binlog 0
sync_frm    ON
system_time_zone    MSK
table_definition_cache  256
table_lock_wait_timeout 50
table_open_cache    64
table_type  MyISAM
thread_cache_size   8
thread_handling one-thread-per-connection
thread_stack    196608
time_format %H:%i:%s
time_zone   SYSTEM
timed_mutexes   OFF
timestamp   1329916096
tmp_table_size  1073741824
tmpdir  /tmp
transaction_alloc_block_size    8192
transaction_prealloc_size   4096
tx_isolation    REPEATABLE-READ
unique_checks   ON
updatable_views_with_limit  YES
version 5.1.54-1ubuntu4-log
version_comment (Ubuntu)
version_compile_machine x86_64
version_compile_os  debian-linux-gnu
wait_timeout    28800
warning_count   0
创建表(如果不存在)`bysr_客户`(
`customerID`int(11)非空自动增量,
`OdnoklasID`varchar(255)不为空,
`Login`varchar(32)默认为空,
`cust_password`varchar(255)不为空,
`Email`varchar(255)默认为空,
`first_name`varchar(255)默认为空,
`姓氏'varchar(255)默认为空,
`kopilka`int(110)非空默认值“0”,
`subscribed4news`int(11)默认为空,
`custgroupID`int(11)默认为空,
`addressID`int(11)默认为空,
`reg_datetime`datetime默认值为空,
`ActivationCode`varchar(16)非空默认值“”,
`CID`int(11)默认为空,
`affiliateID`int(11)不为空,
`affiliateEmailOrders`int(11)非空默认值'1',
`AffiliateMailPayments`int(11)非空默认值'1',
`操作`文本不为空,
`区域`文本不为空,
`城市`文本不为空,
`street`文本不为空,
`house`文本不为空,
`生成`文本不为空,
`房间`文本不为空,
`电话`文本不为空,
`fake`int(10)不为空,
主键(`customerID`),
唯一键'ok_index'('OdnoklasID'),
键'AFFILIATEID'('AFFILIATEID`)
)ENGINE=InnoDB默认字符集=cp1251自动增量=3504023;
在bysr_客户(OdnoklasID、名字、姓氏、客户组ID、注册日期时间、CID、附属邮购、附属邮购付款、假)值中插入('fake_4','2','3','1','2012-02-22 16:42:54','1','1','1','0');
mysql>显示查询7的配置文件;
+----------------------+----------+
|状态|持续时间|
+----------------------+----------+
|启动| 0.000043|
|检查权限| 0.000007|
|期初表| 0.000044|
|系统锁| 0.000004|
|表锁| 0.000004|
|初始值| 0.000018|
|更新| 7.521551|
|完| 0.000011|
|查询结束| 0.000006|
|释放项目| 2.573892|
|记录慢速查询| 0.000013|
|记录慢速查询| 0.000035|
|清理| 0.000006|
+----------------------+----------+
一组13行(0.00秒)
自动增量增量增量1
自动增量偏移量1
自动提交
上的自动\u sp\u权限
背面日志50
basedir/usr/
大桌子
binlog_缓存_大小32768
binlog\u直接\u非事务\u更新关闭
binlog\u格式语句
批量插入缓冲区大小8388608
字符集客户端utf8
字符集连接utf8
字符集数据库cp1251
字符集文件系统二进制
字符集结果utf8
字符集服务器cp1251
字符集系统utf8
字符集目录/usr/share/mysql/charsets/
排序规则\u连接utf8\u常规\u ci
排序规则\u数据库cp1251\u常规\u ci
排序规则\u服务器cp1251\u常规\u ci
完成类型0
同时插入1
连接超时10
datadir/var/lib/mysql/
日期\u格式%Y-%m-%d
日期时间\u格式%Y-%m-%d%H:%i:%s
默认\u周\u格式0
延迟键写入
延迟插入限制100
延迟插入超时300
延迟队列大小1000
div_精度_增量4
发动机状况下推
错误\u计数0
事件调度程序关闭
过期\u日志\u天10
冲洗
刷新时间0
外键检查
ft_布尔_语法+->
此表上是否有可能导致更多DML操作的触发器


或者在插入之后需要维护太多的索引,这会导致速度变慢

我建议删除UNIQUE KEY约束,看看它是如何运行的

这是必要的吗?
kopilka
int(110)


使用varchar(110)

不是更好,如果这种情况刚刚开始发生,我猜是IO争用(磁盘或内存)。检查你的系统

如果它间歇性地发生,但经常发生,我会怀疑VARCHAR(255)
OdnoklasID
列上的大型唯一索引。尝试暂时删除索引以查看插入是否有所改进,然后查看是否可以改进(缩短)或不使用索引

如果要执行多个插入,请将它们合并到一个语句中,因为索引在每个语句之后都会更新


您的VARCHAR(255)字段(添加了4个字节作为整数主键)是每个索引项259个字节。索引的MySQL InnoDB页面大小为16KB,因此每页最多可获得63个索引项,这通常会导致插入时页面分裂。

InnoDB是一个非常好的引擎。然而,它高度依赖于“调整”。一件事是,如果您的插入不是按照主键增加的顺序进行的,innoDB可能需要比MyISAM稍长一点的时间。这可以通过设置更高的innodb_buffer_pool_大小轻松克服。我的建议是将其设置为总RAM的60-70%。 我现在正在生产中运行4台这样的服务器,每分钟插入大约350万行。它们已经拥有近3 TB的容量。必须是InnoDB,因为插入的并发性很高。
还有更多的方法可以加快插入速度。我已经做了一些基准测试

这个表上有很多索引吗?我有3个索引:1.primary(int)2.unique(varchar)3.index(int)Post
的输出显示变量,如“%innodb%”乍一看,缓慢的插入可能是由于VARCHAR(255)
OdnoklasID
列上的大索引造成的。请提供有关此列的更多详细信息。OdnoklasID的最后几个值:540309208417366341651181189642142036使其成为简单索引或删除?对于A/B测试,请临时删除它以查看是否是罪魁祸首。键(索引)会减慢插入速度。需要更新的内容越多,整个插入的速度就越慢。我猜一个同样需要检查唯一性的键会让事情变得更慢。是否可以忽略是一个大问题。只有在您确定唯一密钥是安全的并且没有执行依赖于它的更新时,才删除它。感谢您的详细回答。但是我很抱歉
| update               | 7.521551