真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL數(shù)據(jù)庫的字段什么時候可以拆分-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“MySQL數(shù)據(jù)庫的字段什么時候可以拆分”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“MySQL數(shù)據(jù)庫的字段什么時候可以拆分”這篇文章吧。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供灌南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務。10年已為灌南眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

在數(shù)據(jù)庫的維護當中對表的垂直才分是必然的,基本上在業(yè)務剛開始準守 3NF 是明智的,當然也可以有一些反范式的設(shè)計。但是,建議還是應該在3NF的基礎(chǔ)上再酌情考慮反范式。

當遇到真的要對一些表進行拆分,那要拆那些字段嘞?下面我們就來分析一下。

在新業(yè)務上線后導致TPS突然增高,這時我們對新上的業(yè)務又不是很懂。而問題又要分析解決。

分析解決步驟

解析近期生成的binlog文件獲得是哪個表哪個字段操作的多。

這邊使用到了 吳炳錫 大神的一個工具 parsebinlog。

該工具可以解析出表的操作情況。

上面工具只能解析單個binlog文件的操作,如果要解析多個文件的可以使用 筆者的工具 pasrebinlog_stat.py。

pasrebinlog_stat.py 是對執(zhí)行parsebinlog解析完之后的數(shù)據(jù)進行的統(tǒng)計生成excel文件的工具。

具體使用方法(在github最后有一點小小的說明):https://github.com/daiguadaidai/mysql-binlog-statistic。

使用筆者的方法統(tǒng)計后會生成 5 個文件:

ll

-rw-rw-r-- 1 manager manager 58191 Sep 6 17:18 format.txt

-rw-rw-r-- 1 manager manager 100352 Sep 6 17:18 sort_by_delete.xls

-rw-rw-r-- 1 manager manager 100352 Sep 6 17:18 sort_by_insert.xls

-rw-rw-r-- 1 manager manager 100352 Sep 6 17:18 sort_by_total.xls

-rw-rw-r-- 1 manager manager 100352 Sep 6 17:18 sort_by_update.xls

如果關(guān)心update操作可以查看sort_by_update.xls 其中是按update操作次數(shù)降序排列的。

然后根據(jù)要了解的 表名 到format.txt中查看哪個字段更新平凡。

查看解析出的文件相關(guān) excel

如這邊我在sort_by_update.xls文件中看到 t1 表在定義行,說明他的總update量最多。

然后在format.txt找到 t1 表的統(tǒng)計格式如下:

Table `app_db`.`easy_channel_item`:

Type TOTAL opt: 440353

Type INSERT opt: 8049

Type DELETE opt: 1419

Type UPDATE opt: 430885

28 col : 517

23 col : 145

7 col : 379383

6 col : 46449

12 col : 2

13 col : 2

9 col : 21

8 col : 21

5 col : 4102

4 col : 3853

26 col : 3

27 col : 173

21 col : 136

24 col : 3

25 col : 116

從上可以很清楚的看到 '6 col' 和 '7 col'操作占用了大多的update操作。

通過查看數(shù)據(jù)庫表結(jié)構(gòu)可以知道這兩個字段分表是 price 和 inventory。

拆分字段

知道了哪個表的那個字段update頻繁,可以先將字段從表中剝離出單獨的表。至于需要不要開另外的庫需要看會不會對其他主要業(yè)務有影響(如:下單付款等)。如果有影響在拆到其他庫中。

拆出來的目的主要是為了讓每一個page能存儲更多的數(shù)據(jù),并且不會讓 t1 表的數(shù)據(jù)在緩存中能保存的更長久,不會出現(xiàn)平凡的age out 顯現(xiàn)(沒有解決TPS高的問題)。

對于要提高TPS一般有兩種方法

第一種:將TPS分散,也就是需要將表進行分區(qū)到不同庫(一般這樣要考慮的東西太多。數(shù)據(jù)量不大一般不考慮)。

第二種:使用能提供更高TPS的產(chǎn)品(這邊建議 redis 是不錯的選擇)。

這邊排除第一種

使用第二種:

更具時間經(jīng)驗值:一般使用redis 能提供 TPS:3-5W 更具機器情況還有所提高。

QPS:7-10W 更具機器情況還有所提高。

對于我們的TPS的情況 3-5W TPS 的redis一般能夠勝任

這邊主要擔心的就是有關(guān) 持久化 的問題,這就是架構(gòu)上需要設(shè)計的了。

redis 自身具有持久化功能,每秒持久化一次。

更具我們 同步的情況其實同步可以忍受短時間不實時現(xiàn)象。如果出現(xiàn)redis失效(宕機或怎么的可以重啟redis重新同步所有數(shù)據(jù))。

可以搭建 redis的master-slave 或 cluster 都行這樣就能很好的解決一臺redis宕機問題。

可以根據(jù) 數(shù)據(jù)庫軟件設(shè)計的某些原理和借鑒秒殺架構(gòu),在后臺不定期的將redis的數(shù)據(jù)同步到MySQL。

步驟可以有:

先將相關(guān)數(shù)據(jù) 格式化 的寫入到日志文件(有能力提供消息隊列更好)。

寫入日志成功之后再將數(shù)據(jù)在redis做操作。確保出問題有數(shù)據(jù)庫可查。

以上是“MySQL數(shù)據(jù)庫的字段什么時候可以拆分”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站題目:MySQL數(shù)據(jù)庫的字段什么時候可以拆分-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/dogosh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部