052010.09mysql
做者:zxing 发布:2010-09-05 01:27 字符数:414 分类:Linux, 数据库 阅读: 604 次 1条评论 linux
数据库在WEB系统中充当了极其重要的角色,它的性能直接关系到整个服务器的性能,此文并不是彻底我本身的创做但也包含了我本身的一些体会,在这里权做记录下来留给本身之后继续研究也分享给更多的朋友。程序员
MySQL配置文件为/etc/mysql/my.cnf 而其中“[mysqld]”配置影响着你的数据库性能,其余段落并非很重要,因此这里仅列出了“[mysqld]”配置段的信息。sql
INI数据库
1windows 2缓存 3服务器 4socket 5性能 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
user = mysql socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp # 默认存储引擎 default_table_type = InnoDB # 避免MySQL的外部锁定 skip-external-locking # 禁止DNS解析 这个选项将不容许使用 localhost 进行用户验证而须要使用 127.0.0.1 skip-name-resolve # 修复选项 myisam-recover = BACKUP # 日志选项 expire_logs_days = 10 max_binlog_size = 100M # 错误日志 log_error = /var/log/mysql/error.log # 查询排序缓冲区 独占 sort_buffer_size = 6M # 读查询操做缓冲区 独占 read_buffer_size = 4M # 联合查询操做缓冲区 独占 join_buffer_size = 8M # 整体缓存 thread_stack = 256K table_cache = 128k myisam_sort_buffer_size = 64M thread_cache_size = 64 query_cache_limit = 32M query_cache_size = 64M # 最长链接时间 wait_timeout = 30 # 操做线程 thread_concurrency = 8 # MyISAM 索引缓冲区 key_buffer_size = 256M
# Innodb # Innodb最重要的参数 缓存innodb表的索引,数据,插入数据时的缓冲 innodb_buffer_pool_size=1024M # 用来存放Innodb的内部目录 若是表比较多 能够适当调大 innodb_additional_mem_pool_size=4M innodb_data_file_path = ibdata_1:384M;ibdata_2:384M;ibdata_3:384M:autoextend # 文件读写IO,这个参数只在Windows上起做用,在LINUX上只会等于4 innodb_file_io_threads = 4 innodb_thread_concurrency = 16 # 事务的提交方式 默认为 1, 0或2能够提升性能 # 0:每秒一次写入日志文件,并刷新到到磁盘,事务提交时不进行操做。崩溃时丢失最后一秒的事务。 # 1:每次提交都写入日志文件,并刷新到磁盘。不丢任何一个事务。 # 2:提交后写入文件,但不刷新到磁盘,日志刷新值为2时每秒一次刷新到磁盘。崩溃时会丢失事务。 innodb_flush_log_at_trx_commit=2 # 日志的大小 innodb_log_file_size=32M # 事务缓冲 无需太大MySQL会每秒将内存中的信息写入磁盘中 innodb_log_buffer_size=8M # 指定日志组个数 innodb_log_files_in_group = 3 # 禁止系统缓存 直接写入磁盘 windows下无需设置 innodb_flush_method=O_DIRECT # 控制Innodb的脏页在缓冲中的最高百分比 innodb_max_dirty_pages_pct = 90 # 锁定时间长度 innodb_lock_wait_timeout = 30 |
提醒DBA们MySQL并不是一个文件便可优化的,我给出的配置仅仅适合我本身的服务器:4G内存/单志强CPU!另外其余软件也会影响服务器整体性能,因此须要你不断查看服务器的各类状态变量,根据实际状况不断调整出最适合你服务器的配置。
最后,还须要提醒程序员,MySQL性能调优仅可提供一个快速的平台,最终程序性能还须要在查询语句,表结构上下功夫的,每每一个极耗资源的查询断送掉前面全部的性能调整......