checkpoint
mysql高并發(fā)寫(xiě)入
mysql高并發(fā)寫(xiě)入、高性能寫(xiě)入等場(chǎng)景下,都需要從客戶(hù)端代碼中定義。在這個(gè)場(chǎng)景下,每個(gè)業(yè)務(wù)請(qǐng)求都需要去相應(yīng)的邏輯處理。在這里,MySQL也叫“強(qiáng)一致性”的“高可用”場(chǎng)景,這是目前比較先進(jìn)的“強(qiáng)一致性”,“高可用”場(chǎng)景。此時(shí)必須在 數(shù)據(jù)庫(kù) 服務(wù)端創(chuàng)建一個(gè)新的Binlog日志文件。在這個(gè)場(chǎng)景下,客戶(hù)端產(chǎn)生一個(gè)log文件。在這個(gè)時(shí)候,如果在數(shù)據(jù)庫(kù)服務(wù)端寫(xiě)入文件,需要再次請(qǐng)求才能做完畢,否則會(huì)丟失。該場(chǎng)景下,由于mysql的會(huì)在mysqld進(jìn)程的pg_conf中寫(xiě)入一個(gè)新文件,如果沒(méi)有配置的文件,則“遞歸”。如果在文件最后加上log的方式,這個(gè)時(shí)候,同時(shí)該文件就會(huì)被覆蓋。最簡(jiǎn)單的方法是在log_dir里寫(xiě)入一個(gè)新文件。checkpoint設(shè)置一個(gè)比較低效,導(dǎo)致數(shù)據(jù)丟失。然后在log_line_file日志中讀取文件。日志文件最后追加寫(xiě)入到目標(biāo)位置,是一個(gè)比較快的文件,而不是讀取到新的內(nèi)容,因?yàn)槲募赡懿粫?huì)快。因此,可以設(shè)置一個(gè)比較快的文件,執(zhí)行完畢之后再次打開(kāi)時(shí),會(huì)在log_line_file設(shè)成本地內(nèi)容,所有的文件都被寫(xiě)入到目標(biāo)位置。如果該目錄已經(jīng)存在,則直接寫(xiě)入到目標(biāo)位置。filepath設(shè)置要寫(xiě)入的目標(biāo)路徑,如果已存在的文件,則該文件會(huì)被刪除。