日期:2014-05-16  浏览次数:20682 次

对mysql存储性能优化的基本理解

这几天了解了下关于mysql数据库的性优化和设计方面的内容,现在做一下自己学习的小结,后续我会继续深入学习,完善下总结:

1、使用索引
每张表最多可以做16个索引,支持多列索引和全文索引
建立索引:create index index_name on users(username);
查看索引:show index from users;
是一把双刃剑,建不建立索引,主要看表的功能,找好一个平衡点,。


2、使用explain分析查询
在查询在用explain 
explain  select *from users;


3、调整mysql内部配置


(1)、改变索引缓冲区长度(key_buffer);
推荐设置整个系统内存的25%。


(2)、改变表长(read_buffer_size)
当数据库对某个表进行频繁的扫描的时候,mysql会分配一段内存缓冲区,如果觉得扫描进行的太慢,可以适当将该值大小。


(3)、设定打开表的数目的大小(table_cache)
该变量控制mysql在任何时候打开表的最大数目,由此来控制服务器响应输入请求的能力。他跟max_connections


(4)、对缓查询设定一个时间限制(long_query_time)
ySQL带有“慢查询日志”,它会自动地记录所有的在一个特定的时间范围内尚未结束的查询。这个日志对于跟踪那些低效率或者行为不端的查询以及寻找优化对象都非常有用。long_query_time变量控制这一最大时间限定,以秒为单位。也可设置为ms,但是需要打补丁。

至于安全方面的考虑,比如测试数据库和线上分离、备份、主从等,这些后续再谈,时间紧迫,先写这么多,待续...