机器内存2G
双核
一个硬盘
普通PC机
数据库为InnoDB类型的
请提供一个比较适合的参数配置,主要是内存,线程数,文件,日志等。
好像有些参数是innoDB用不到的。谢谢大家。我着东西不熟悉啊!

解决方案 »

  1.   

    参数是一方面,表结构、索引、约束、表间关系、触发器、SQL语句合理等等都会影响MYSQL的速度,
    还有你要执行的操作、表有多大等等,根据你上面的资料,信息严重不足,
    补充一下吧
      

  2.   

    啊? 测试数据库性能的标准。最新比较流行的是TCP-E。实际上就是需要一个2G内存,可用的估计有1.6G左右,1个硬盘,双核CPU,
    简单的大并发事务。要一个innodb的推荐配置参数。
      

  3.   

    转:
    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来禁止这个限制
      

  4.   

    假设你有一台 512MB 内存,三台 20GB 硬盘(路径分别为:"/","/dr2","/dr3“)的服务器,设置的例子为:[mysqld]
    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 
      

  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% .