Linux下的MySQL性能调优-让你的MySQL运行的更快

Linux下的MySQL性能调优-让你的MySQL运行的更快

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 02能够提升性能

# 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性能调优仅可提供一个快速的平台,最终程序性能还须要在查询语句,表结构上下功夫的,每每一个极耗资源的查询断送掉前面全部的性能调整......

相关文章
相关标签/搜索