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

mysql杂记

?

1 n+1sql vs?表关联,n+1获胜

http://www.iteye.com/topic/1116737

2 性能优化的建议

http://coolshell.cn/articles/1846.html

数据库的优化点有:

需求和架构及业务实现优化: 55%
Query语句的优化: 30%
数据库自身的优化: 15%

3 主要的存储引擎MyISAM,InnodB。存储文件不一样,InnodB支持事务,有redo、checkpoint保证crash之后,依旧可以回滚数据,InnodB支持行锁。MyISAM读操作效率较高,写操作会锁表,而InnodB适用于写操作较多的场景,并发能力较强。

4 mysql根据锁定资源粒度的大小分为行锁(Innodb、NDBCluster)、页锁(BerkeleyDB)、表锁(MyISAM , Memory , CSV等非事务引擎),随着粒度增大,并发能力变弱,对相同数据量进行锁定耗费的资源越小。

5 innodB的使用方式

要想合理利用Innodb的行级锁定,做到扬长避短,我们必须做好以下工作:
a)尽可能让所有的数据检索都通过索引来完成,从而避免Innodb因为无法通过索引键加锁而升级
为表级锁定;
b)合理设计索引,让Innodb在索引键上面加锁的时候尽可能准确,尽可能的缩小锁定范围,避免
造成不必要的锁定而影响其他Query的执行;
c)尽可能减少基于范围的数据检索过滤条件,避免因为间隙锁带来的负面影响而锁定了不该锁定
的记录;
d)尽量控制事务的大小,减少锁定的资源量和锁定时间长度;
e)在业务环境允许的情况下,尽量使用较低级别的事务隔离,以减少MySQL因为实现事务隔离级
别所带来的附加成本;

?合理的表大小实践

http://blog.csdn.net/yah99_wolf/article/details/7082772

?

6?使用中文字符的话,必须使用gbk

http://blogold.chinaunix.net/u/21684/showart_208239.html

?

?