mysql主從,從庫(kù)鎖表會(huì)導(dǎo)致復(fù)制阻塞嗎?
問(wèn)題描述
mysql配置了主從,從庫(kù)用來(lái)查詢慢語(yǔ)句,如果查詢時(shí)鎖表了,主庫(kù)那邊會(huì)時(shí)時(shí)復(fù)制過(guò)來(lái)嗎?還是會(huì)等到慢查詢結(jié)束后才會(huì)復(fù)制過(guò)來(lái)?
問(wèn)題解答
回答1:主從同步是通過(guò)binlog進(jìn)行的,從庫(kù)有兩個(gè)線程,一個(gè)負(fù)責(zé)接受binlog日志,一個(gè)負(fù)責(zé)解析日志將數(shù)據(jù)寫入庫(kù)中。所以主從同步一般是有一定的延時(shí)的。
至于讀寫鎖的問(wèn)題,寫鎖是排他的,讀鎖可以多次獲得。在Innodb中,鎖分為表鎖、行鎖和間隙鎖,具體看你的操作,如果一個(gè)插入操作需要鎖表,而這時(shí)有查詢鎖住了該表中的一行,自然是需要等待的。
回答2:題主你再重新認(rèn)真想想。
根據(jù)我理解的問(wèn)題,你確定是主庫(kù)實(shí)時(shí)復(fù)制從庫(kù)? 這個(gè)邏輯有問(wèn)題。
回答3:誤人子弟,主從復(fù)制,正常來(lái)說(shuō)從庫(kù)是不允許除復(fù)制進(jìn)程以外的寫操作的,在從庫(kù)進(jìn)行查詢操作是不會(huì)阻塞復(fù)制的寫進(jìn)程的,當(dāng)然如果你非要手動(dòng)去鎖從庫(kù)的數(shù)據(jù),主庫(kù)同步到被鎖的記錄時(shí)在從庫(kù)上是會(huì)等待鎖的,所以要嚴(yán)格控制從庫(kù)的寫動(dòng)作,除管理員以外全部只讀
相關(guān)文章:
1. mysql主從復(fù)制 REPLICATE_DO_DB 參數(shù)從服務(wù)器reboot后每次都回滾為初始設(shè)置2. 數(shù)據(jù)庫(kù) - 使用讀寫分離后, MySQL主從復(fù)制延遲會(huì)導(dǎo)致讀不到數(shù)據(jù)嗎?3. mysql主從 - 關(guān)于mysql數(shù)據(jù)庫(kù)同步問(wèn)題,每個(gè)數(shù)據(jù)庫(kù)都包含相同數(shù)據(jù)?4. mysql主從 - 請(qǐng)教下mysql 主動(dòng)-被動(dòng)模式的雙主配置 和 主從配置在應(yīng)用上有什么區(qū)別?5. mysql主從同步改為雙向同步的問(wèn)題
