对于mysql的一些又优化锁性能的建议

1.尽量使用较低的隔离级别;
2.精心设计索引, 并尽量使用索引访问数据, 使加锁更精确, 从而减少锁冲突的机会
3.选择合理的事务大小,小事务发生锁冲突的几率也更小
4.给记录集显示加锁时,最好一次性请求足够级别的锁。比如要修改数据的话,最好直接申请排他锁,而不是先申请共享锁,修改时再请求排他锁,这样容易产生死锁
5.不同的程序访问一组表时,应尽量约定以相同的顺序访问各表,对一个表而言,尽可能以固定的顺序存取表中的行。这样可以大大减少死锁的机会
6.尽量用相等条件访问数据,这样可以避免间隙锁对并发插入的影响
7.不要申请超过实际需要的锁级别
8.除非必须,查询时不要显示加锁。 MySQL的MVCC可以实现事务中的查询不用加锁,优化事务性能;MVCC只在COMMITTED READ(读提交)和REPEATABLE READ(可重复读)两种隔离级别下工作
9.对于一些特定的事务,可以使用表锁来提高处理速度或减少死锁的可能

你可能感兴趣的:(对于mysql的一些又优化锁性能的建议)