如果一个表,update、select都比较频繁,有什么办法来减少表锁?读写分离情况下,binlog在“读服务器”上的应用,会造成“读服务器”锁表吗?

seai 2010-08-02 05:54:27
如果一个表,update、select都比较频繁,有什么办法来减少表锁?

使用主从同步/读写分离可以达到效果吗?分离后,“写入服务器”上读减少了,但“读取服务器”上的写似乎不会减少吧?“写入服务器”上的binlog在“读取服务器”上应用时不会存在表锁吗?

使用分区表可以达到效果吗?没找到相关资料说,什么样的情形下,所只加在特定分区上,而不是整个表上面,所以也不确定这个方法是否有效。
...全文
314 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
seai 2010-08-07
  • 打赏
  • 举报
回复
有高手进一步解答吗
netxuning 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 seai 的回复:]

引用 3 楼 acmain_chm 的回复:

1. 读写分离
2. 使用支持行锁的存储引擎



我的意思是,master上的binlog在salve上进行同步应用时,不会和salve上的select操作竞争产生锁表吗?
[/Quote]

同步如果是statement-based模式,肯定会产生锁表的,因为它的机理就是将master上写操作的语句传给slave上执行!
至于row-based模式,我不清楚,请高手进一步解答!
netxuning 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 seai 的回复:]

引用 7 楼 loveflea 的回复:

master上的binlog在salve上进行同步应用时,会和salve上的select操作产生锁竞争!



那么,结论就是,读写分离本质上并不会减少锁表?
按照这样的理解,读写分离后,对master(“写”服务器)而言,完全没了读的负担,但是对salve(“读”服务器)而言,读没有减少,写也没有减少,那么读写分离对性能的提升体现在哪?……
[/Quote]

master只写,多台slave分担了select查询,平摊在单台上的select变少了,也就会减少与binlog同步过去的写操作竞争了! 仅此而已!
netxuning 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 seai 的回复:]
使用分区表可以达到效果吗?
[/Quote]

high performance mysql上说5.1版本分区还没有这个功能,但听他的语气后续版本会增加这样的功能!
seai 2010-08-04
  • 打赏
  • 举报
回复
那么

读写分离能减少锁表?我的疑问是,假设未采用读写分离方案的情况下数据库锁表严重,那么会因为使用了读写分离,就能极大减轻锁表状况?读写分离方案中,
假设采用master/salve同步,insert/update/delete在master上执行,select在salve上执行。我的意思是,master上的binlog在salve上进行同步应用时,不会和salve上的select操作竞争产生锁表吗?
seai 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 loveflea 的回复:]

master上的binlog在salve上进行同步应用时,会和salve上的select操作产生锁竞争!
[/Quote]


那么,结论就是,读写分离本质上并不会减少锁表?
按照这样的理解,读写分离后,对master(“写”服务器)而言,完全没了读的负担,但是对salve(“读”服务器)而言,读没有减少,写也没有减少,那么读写分离对性能的提升体现在哪?我只理解到它的安全性(备份)功能!
loveflea 2010-08-04
  • 打赏
  • 举报
回复
master上的binlog在salve上进行同步应用时,会和salve上的select操作产生锁竞争!
ACMAIN_CHM 2010-08-03
  • 打赏
  • 举报
回复
[Quote]另外想问下各位,分区技术对减轻锁表有没有作用?[/Quote]理论上无,但由于加快了读写,也会减少冲突。
seai 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]

1. 读写分离
2. 使用支持行锁的存储引擎
[/Quote]


使用InnoDB的情况下,还有其他手段可用吗?

读写分离能减少锁表?我的疑问是,假设未采用读写分离方案的情况下数据库锁表严重,那么会因为使用了读写分离,就能极大减轻锁表状况?读写分离方案中,
假设采用master/salve同步,insert/update/delete在master上执行,select在salve上执行。我的意思是,master上的binlog在salve上进行同步应用时,不会和salve上的select操作竞争产生锁表吗?

另外想问下各位,分区技术对减轻锁表有没有作用?
ACMAIN_CHM 2010-08-02
  • 打赏
  • 举报
回复
1. 读写分离
2. 使用支持行锁的存储引擎
feixianxxx 2010-08-02
  • 打赏
  • 举报
回复
如果一个表,update、select都比较频繁,有什么办法来减少表锁?
==>>
要减少锁表 那就用行级锁..
并发性比较高。

InnoDB引擎支持行级锁~
rucypli 2010-08-02
  • 打赏
  • 举报
回复
用innodb

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧