【求救】请提供一个TPCC测试用的MySQL的配置文件 机器内存2G双核一个硬盘普通PC机数据库为InnoDB类型的请提供一个比较适合的参数配置,主要是内存,线程数,文件,日志等。好像有些参数是innoDB用不到的。谢谢大家。我着东西不熟悉啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参数是一方面,表结构、索引、约束、表间关系、触发器、SQL语句合理等等都会影响MYSQL的速度,还有你要执行的操作、表有多大等等,根据你上面的资料,信息严重不足,补充一下吧 啊? 测试数据库性能的标准。最新比较流行的是TCP-E。实际上就是需要一个2G内存,可用的估计有1.6G左右,1个硬盘,双核CPU,简单的大并发事务。要一个innodb的推荐配置参数。 转:mysql innodb引擎的优化方法innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以容纳额外的数据。例如: innodb_data_file_path=/disk1 /ibdata1:900M;/disk2/ibdata2:50M:autoextend两个数据文件放在不同的磁盘上。数据首先放在ibdata1 中,当达到900M以后,数据就放在ibdata2中。一旦达到50MB,ibdata2将以8MB为单位自动增长。如果磁盘满了,需要在另外的磁盘上面增加一个数据文件。innodb_data_home_dir:放置表空间数据的目录,默认在mysql的数据目录,设置到和MySQL安装文件不同的分区可以提高性能。innodb_log_file_size:该参数决定了recovery speed。太大的话recovery就会比较慢,太小了影响查询性能,一般取256M可以兼顾性能和recovery的速度。innodb_log_buffer_size:磁盘速度是很慢的,直接将log写道磁盘会影响InnoDB的性能,该参数设定了log buffer的大小,一般4M。如果有大的blob操作,可以适当增大。innodb_flush_logs_at_trx_commit=2: 该参数设定了事务提交时内存中log信息的处理。 1) =1时,在每个事务提交时,日志缓冲被写到日志文件,对日志文件做到磁盘操作的刷新。Truly ACID。速度慢。 2) =2时,在每个事务提交时,日志缓冲被写到文件,但不对日志文件做到磁盘操作的刷新。只有操作系统崩溃或掉电才会删除最后一秒的事务,不然不会丢失事务。 3) =0时, 日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新。任何mysqld进程的崩溃会删除崩溃前最后一秒的事务innodb_file_per_table:可以存储每个InnoDB表和它的索引在它自己的文件中。transaction-isolation=READ-COMITTED: 如果应用程序可以运行在READ-COMMITED隔离级别,做此设定会有一定的性能提升。innodb_flush_method: 设置InnoDB同步IO的方式: 1) Default – 使用fsync()。 2) O_SYNC 以sync模式打开文件,通常比较慢。 3) O_DIRECT,在Linux上使用Direct IO。可以显著提高速度,特别是在RAID系统上。避免额外的数据复制和double buffering(mysql buffering 和OS buffering)。innodb_thread_concurrency: InnoDB kernel最大的线程数。 1) 最少设置为(num_disks+num_cpus)*2。 2) 可以通过设置成1000来禁止这个限制 假设你有一台 512MB 内存,三台 20GB 硬盘(路径分别为:"/","/dr2","/dr3“)的服务器,设置的例子为:[mysqld]innodb_data_home_dir = /innodb_data_file_path = ibdata/ibdata1:2000M;dr2/ibdata/ibdata2:2000Mset-variable = innodb_buffer_pool_size=350Mset-variable = innodb_additional_mem_pool_size=20Minnodb_log_group_home_dir = /dr3/iblogsinnodb_log_arch_dir = /dr3/iblogsinnodb_log_archive=0set-variable = innodb_log_files_in_group=3set-variable = innodb_log_file_size=50Mset-variable = innodb_log_buffer_size=8Minnodb_flush_log_at_trx_commit=1set-variable = innodb_file_io_threads=4set-variable = innodb_lock_wait_timeout=50#innodb_flush_method=fdatasync#innodb_fast_shutdown=1#set-variable = innodb_thread_concurrency=5 详细描述Mysql InnoDb 的相关配置和优化方法. InnoDb 介绍: InnoDb 存储引擎,支持事务,行锁,外键.InnoDb 设计用来处理大数据量时提供最好的 性能. InnoDb 提供自己的缓存(buffer pool) 还缓存数据和索引.innodb 把数据和索引存放 到表空间(tablespace) ,表空间是几个磁盘文件或者是原是设备文件(raw disk). 它 不像MyISAM 存储引擎,每个表只是一个文件.(这样在某些系统下最大2G限制). 而Innodb 没有此限制,可以无限扩展. Mysql4.0 的以后版本都支持innodb 存储. InnoDb 配置: innodb 管理的两个磁盘文件是表空间文件和日志文件. 表空间定义: innodb_data_file_path=datafile_spec1[;datafile_spec2]... 文件声明格式: file_name:file_size[:autoextend[:max:max_file_size]] innodb_data_home_dir 声明文件存放目录. mysql 读取配置文件的顺序: `/etc/my.cnf' Global options. `DATADIR/my.cnf' Server-specific options. `defaults-extra-file' The file specified with the --defaults-extra-file option. `~/.my.cnf' User-specific options. 内存使用下面的加起来不要超过2G: innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB InnoDb 参数说明: innodb_additional_mem_pool_size 存储数据字典信息和内部结构信息, 如果你的表越多,这个需要的内存就越多,如果你预留的空间不够,就开始象系统申请内存.errlog 会有错误. 缺省设置为1M. innodb_autoextend_increment 当表空间满时字段扩展大小. innodb_buffer_pool_size 数据和索引用的缓存大小.一般时系统物理内存的50~80% . 求一条简单SQL语句! mysql 有没有对结果集处理的能力 mysql的MD5加密后的字符能不能设定长度 win7 x64 装MySQL 我在备份Wordpress的MySQL数据库时,以下高级选项中的参数不知该如何选择! mysql 全角半角相互转换的函数 mysql3.2.3版本,增加最大连接数问题,紧急求助,在线等,解决了马上结贴 请教各位高手如下的SQL语句如何写 myeclipe 连接mysql 是不是配置问题啊??搞头痛了,,求大神!! 连接数据库报错 oracle数据库的id增加如何替换成mysql的 mysql同步创建表的问题
还有你要执行的操作、表有多大等等,根据你上面的资料,信息严重不足,
补充一下吧
简单的大并发事务。要一个innodb的推荐配置参数。
mysql innodb引擎的优化方法
innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以容纳额外的数据。例如: innodb_data_file_path=/disk1 /ibdata1:900M;/disk2/ibdata2:50M:autoextend两个数据文件放在不同的磁盘上。数据首先放在ibdata1 中,当达到900M以后,数据就放在ibdata2中。一旦达到50MB,ibdata2将以8MB为单位自动增长。如果磁盘满了,需要在另外的磁盘上面增加一个数据文件。innodb_data_home_dir:放置表空间数据的目录,默认在mysql的数据目录,设置到和MySQL安装文件不同的分区可以提高性能。innodb_log_file_size:该参数决定了recovery speed。太大的话recovery就会比较慢,太小了影响查询性能,一般取256M可以兼顾性能和recovery的速度
。
innodb_log_buffer_size:磁盘速度是很慢的,直接将log写道磁盘会影响InnoDB的性能,该参数设定了log buffer的大小,一般4M。如果有大的blob操作,可以适当增大。innodb_flush_logs_at_trx_commit=2: 该参数设定了事务提交时内存中log信息的处理。 1) =1时,在每个事务提交时,日志缓冲被写到日志文件,对日志文件做到磁盘操作的刷新。Truly ACID。速度慢。
2) =2时,在每个事务提交时,日志缓冲被写到文件,但不对日志文件做到磁盘操作的刷新。只有操作系统崩溃或掉电才会删除最后一秒的事务,不然不会丢失事务。
3) =0时, 日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新。任何mysqld进程的崩溃会删除崩溃前最后一秒的事务innodb_file_per_table:可以存储每个InnoDB表和它的索引在它自己的文件中。transaction-isolation=READ-COMITTED: 如果应用程序可以运行在READ-COMMITED隔离级别,做此设定会有一定的性能提升。innodb_flush_method: 设置InnoDB同步IO的方式: 1) Default – 使用fsync()。
2) O_SYNC 以sync模式打开文件,通常比较慢。
3) O_DIRECT,在Linux上使用Direct IO。可以显著提高速度,特别是在RAID系统上。避免额外的数据复制和double buffering(mysql buffering 和OS buffering)。innodb_thread_concurrency: InnoDB kernel最大的线程数。 1) 最少设置为(num_disks+num_cpus)*2。
2) 可以通过设置成1000来禁止这个限制
innodb_data_home_dir = /
innodb_data_file_path = ibdata/ibdata1:2000M;dr2/ibdata/ibdata2:2000M
set-variable = innodb_buffer_pool_size=350M
set-variable = innodb_additional_mem_pool_size=20M
innodb_log_group_home_dir = /dr3/iblogs
innodb_log_arch_dir = /dr3/iblogs
innodb_log_archive=0
set-variable = innodb_log_files_in_group=3
set-variable = innodb_log_file_size=50M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_file_io_threads=4
set-variable = innodb_lock_wait_timeout=50
#innodb_flush_method=fdatasync
#innodb_fast_shutdown=1
#set-variable = innodb_thread_concurrency=5