mysql中什么是大表?什么是大事務(wù)?該如何處理?

本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于mysql中什么是大表?什么是大事務(wù)?該如何處理?有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

前言

相對(duì)來(lái)說(shuō),什么情況下的數(shù)據(jù)庫(kù)表能夠稱(chēng)為“大表”呢?

  • 當(dāng)一個(gè)表的數(shù)據(jù)超過(guò)千萬(wàn)行的時(shí)候,就會(huì)對(duì)數(shù)據(jù)庫(kù)造成影響

  • 當(dāng)表數(shù)據(jù)文件巨大,表數(shù)據(jù)文件超過(guò)10G(數(shù)據(jù)值相對(duì)硬件而言)

大表的影響

大表對(duì)查詢(xún)的影響

慢查詢(xún):很難在一定的時(shí)間內(nèi)過(guò)濾出所需要的數(shù)據(jù)
(Eg:顯示訂單、來(lái)源少、區(qū)分度底、大量磁盤(pán)IO、降低磁盤(pán)效率、慢查詢(xún))

大表對(duì)DDL操作的影響

1、建立索引需要很長(zhǎng)時(shí)間

風(fēng)險(xiǎn):

mysql版本 MYSQL版本 >= 5.5 雖然不會(huì)鎖表但會(huì)引起主從延遲

2、修改表結(jié)構(gòu)需要長(zhǎng)時(shí)間鎖表

風(fēng)險(xiǎn):

會(huì)造成長(zhǎng)時(shí)間的主從延遲
影響正常的數(shù)據(jù)操作

如何處理數(shù)據(jù)庫(kù)中的大表

1、分庫(kù)分表把一張大表分成多個(gè)小表

難點(diǎn):

分表主鍵的選擇
分表后跨分區(qū)數(shù)據(jù)的查詢(xún)和統(tǒng)計(jì)

2、大表的歷史數(shù)據(jù)歸檔

優(yōu)點(diǎn):

減少對(duì)前后端業(yè)務(wù)的影響

難點(diǎn):

歸檔時(shí)間點(diǎn)的選擇
如何進(jìn)行歸檔的操作

什么是事務(wù)?

  • 事務(wù)是數(shù)據(jù)庫(kù)系統(tǒng)區(qū)別于其他一切文件系統(tǒng)的重要特性之一

  • 事務(wù)是一組具有原子性的SQL語(yǔ)句,或是一個(gè)獨(dú)立的工作單元

事務(wù)要求符合:原子性、一致性、隔離性、持久性

事務(wù)的原子性

一個(gè)事務(wù)必須被視為不可分離的最小工作單位,整個(gè)事務(wù)中的所有操作要么全部提交成功,要么全部失敗,對(duì)于一個(gè)事務(wù)來(lái)說(shuō),不可能只執(zhí)行其中的一部分操作。

Eg:
1、檢查理財(cái)賬戶(hù)中的余額是否高于2000元
2、從理財(cái)賬戶(hù)的余額中減去2000元
3、在活動(dòng)存款賬戶(hù)上增加2000元

整個(gè)事務(wù)中的所有操作要么全部提交成功,要么全部失敗回滾。

事務(wù)的一致性

一致性是指事務(wù)將數(shù)據(jù)庫(kù)從一種一致性狀態(tài)轉(zhuǎn)換到另外一種一致性狀態(tài),在事務(wù)開(kāi)始之前和事務(wù)結(jié)束后數(shù)據(jù)庫(kù)中數(shù)據(jù)的完整性沒(méi)有被破壞。

事務(wù)的隔離性

隔離性要求一個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的修改,在未提交完成之前對(duì)于其他事務(wù)是不可見(jiàn)的。

SQL標(biāo)準(zhǔn)中定義的四種各類(lèi)級(jí)別(隔離性由低到高)(并發(fā)性由高到低)

未提交讀(READ UNCOMMITED)
已提交讀(READ COMMITED)
可重復(fù)讀(REPEATABLE READ)
可串行化(SERIALIZABLE)

事務(wù)的持久性

一旦事務(wù)提交,則其所做的修改就會(huì)永遠(yuǎn)保存到數(shù)據(jù)庫(kù)中,此時(shí)即使系統(tǒng)崩潰,已經(jīng)提交的修改數(shù)據(jù)也不會(huì)丟失。

什么是大事務(wù)?

運(yùn)行的時(shí)間比較長(zhǎng),操作的數(shù)據(jù)比較多的事務(wù)

風(fēng)險(xiǎn):

鎖定太多的數(shù)據(jù),造成大量的阻塞和鎖超時(shí)
回滾所需要的時(shí)間比較長(zhǎng)
執(zhí)行時(shí)間長(zhǎng),容易造成主從延遲

如何處理大事務(wù)?

  • 避免一次處理太多的數(shù)據(jù)

  • 移出不必要在事務(wù)中的select操作

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員