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

本文介绍了如何通过配置Linux下的MySQL来提升其性能,重点讨论了my.cnf文件中的[mysqld]段落配置项及其对性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

052010.09

作者:zxing   发布:2010-09-05 01:27   字符数:414   分类:Linux, 数据库   阅读: 604 次   1条评论  

数据库在WEB系统中充当了极其重要的角色,它的性能直接关系到整个服务器的性能,此文并非完全我自己的创作但也包含了我自己的一些体会,在这里权作记录下来留给自己以后继续研究也分享给更多的朋友。

MySQL配置文件为/etc/mysql/my.cnf 而其中“[mysqld]”配置影响着你的数据库性能,其他段落并不是很重要,所以这里仅列出了“[mysqld]”配置段的信息。

INI

1

2

3

4

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


转载于:https://my.oschina.net/u/582827/blog/374166

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值