找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 76|回复: 7

mysql 的优化10个原则

[复制链接]

189

主题

2016

回帖

4641

积分

论坛元老

积分
4641
发表于 2011-6-27 23:29:10 | 显示全部楼层 |阅读模式
简单总结了一下
转载自http://kakaluyi.iteye.com/blog/733132

1使用索引但是不要滥用索引



2使用持续的连接(连接池)



3缓存数据库使用,减少数据库的负载



4不要使用select * from table_name而是查询需要的列



5读写分离(多个数据源,读写业务分离在不同数据源)



6横向扩展,分布式数据库(可以根据id存储数据在不同的数据库上,但是要考虑备份)



7八十二十原则,把精力放在瓶颈的那个点



8优化mysql语句,多用show processlist,show status跟踪数据库的瓶颈sql.



9延迟加载关联表



10mysql配置更大的缓存见下:命令是mysqld --verbose --help

MySQL高速缓存(所有线程共享,一次性分配)

* 键码缓存:key_buffer_size,默认8M。
* 表缓存:table_cache,默认64。
* 线程缓存:thread_cache_size,默认0。
* 主机名缓存:可在编译时修改,默认128。
* 内存映射表:目前仅用于压缩表。



当调节MySQL服务器时,要配置的两个最重要的变量是key_buffer_size和table_cache。在试图更改其它变量前你应先确信已经适当地配置了这些变量。

下面的例子显示了部分典型的不同的运行时配置的变量值。

·         如果至少有256MB内存和许多表,想要在中等数量的客户时获得最大性能,应使用:

·                shell> mysqld_safe --key_buffer_size=64M --table_cache=256 \

·                           --sort_buffer_size=4M --read_buffer_size=1M &

·         如果只有128MB内存和少量表,但仍然要进行大量的排序,可以使用:

·                shell> mysqld_safe --key_buffer_size=16M --sort_buffer_size=1M

如果有许多并行连接,交换问题会发生,除非mysqld已经配置成为每个连接分配很少的内存。如果有足够的内存用于所有连接,mysqld会执行得更好。

·         对于少量内存和大量连接,应使用:

·                shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \

·                           --read_buffer_size=100K &

或甚至为:

shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \

           --table_cache=32 --read_buffer_size=8K \

           --net_buffer_length=1K &

如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。

如果已经安装了MySQL,support-files目录包含一些不同的my.cnf示例文件:my-huge.cnf、my-大.cnf、my-medium.cnf和my-small.cnf。可以使用这些文件来优化系统。

请注意如果在命令行中为mysqld或mysqld_safe指定一个选项,它只在该次服务器调用中保持有效。要想每次服务器运行时使用该选项,将它放在选项文件中。

要想看参数更改的效果,应执行:

shell> mysqld --key_buffer_size=32M --verbose ---help

变量值列于输出的最后。确保--verbose和---help选项在最后。否则,在命令行中列于它们后面的选项的效果不会反映到输出中。



不是很懂
回复

使用道具 举报

48

主题

4128

回帖

8444

积分

论坛元老

积分
8444
发表于 2011-6-27 23:40:23 | 显示全部楼层
支持啊
回复

使用道具 举报

189

主题

2016

回帖

4641

积分

论坛元老

积分
4641
 楼主| 发表于 2011-6-28 00:03:47 | 显示全部楼层
元老灌水



回复

使用道具 举报

205

主题

2683

回帖

6019

积分

论坛元老

积分
6019
发表于 2011-6-28 00:18:06 | 显示全部楼层
看不懂
回复

使用道具 举报

189

主题

2016

回帖

4641

积分

论坛元老

积分
4641
 楼主| 发表于 2011-6-28 00:25:39 | 显示全部楼层




回复

使用道具 举报

17

主题

63

回帖

193

积分

注册会员

积分
193
发表于 2011-6-28 01:16:46 | 显示全部楼层
支持
回复

使用道具 举报

70

主题

1779

回帖

3790

积分

论坛元老

积分
3790
发表于 2011-6-28 14:01:09 | 显示全部楼层
mark
回复

使用道具 举报

73

主题

1121

回帖

2513

积分

金牌会员

积分
2513
发表于 2011-6-28 19:03:36 | 显示全部楼层
看不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-1-13 03:32 , Processed in 0.017728 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表