精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么 DTS 升級(jí) MySQL 會(huì)造成查詢緩慢?

數(shù)據(jù)庫(kù) MySQL
MySQL 官方給出的建議是:在實(shí)際使用中,可以通過(guò)檢查 Opened_tables (打開(kāi)過(guò)的表的數(shù)量總和)變量來(lái)確定是否需要增加表緩存。平時(shí)我們可以通過(guò)執(zhí)行 show global status 看到該值。

大家好,我是煎魚。

最近我有一個(gè)朋友遇到了一個(gè) MySQL 相關(guān)的問(wèn)題,在開(kāi)啟 DTS 升級(jí)同步后實(shí)例上的 SQL 查詢大量緩慢。但監(jiān)控圖表上是一切正常的。

某技術(shù)支持給出的緣由是 table_open_cache 關(guān)聯(lián)因素造成的。咱們今天目標(biāo)是深究一下這個(gè)指標(biāo)和問(wèn)題背后的邏輯。

table_open_cache 是什么

官方文檔介紹

根據(jù) MySQL5.7 文檔,table_open_cache 參數(shù)項(xiàng)的具體作用如下:

1、所有線程打開(kāi)的表的數(shù)量。增加該值會(huì)增加 mysqld 所需的 fd(文件描述符數(shù)量)。

2、table_open_cache 和 max_connections 系統(tǒng)變量會(huì)影響服務(wù)器保持打開(kāi)狀態(tài)的最大文件數(shù)。如果增加其中一個(gè)或兩個(gè)值,可能會(huì)遇到操作系統(tǒng)對(duì)每個(gè)進(jìn)程打開(kāi)文件描述符數(shù)量的限制。

圖片圖片

默認(rèn)值是 2000。該值的修改范圍是全局。

總結(jié)一下:table_open_cache 代表 MySQL Server 所允許的所有線程打開(kāi)表的總數(shù)量。這個(gè)變量可能會(huì)受 fd 文件描述符的影響。因此要經(jīng)過(guò)測(cè)試慎重使用。

classTable__cache 緩存設(shè)計(jì)機(jī)制

MySQL 是多線程的,可以使用所有可用的 CPU。這意味著不同的線程內(nèi)的多個(gè)會(huì)話都有可能同時(shí)訪問(wèn)同一張表。而表數(shù)據(jù)最終還是磁盤上的數(shù)據(jù)文件。

如果每次都去反復(fù)重復(fù)打開(kāi)和關(guān)閉表的文件句柄,這也太費(fèi)資源了??隙〞?huì)影響使用性能。

因此 MySQL 官方設(shè)計(jì)了這個(gè)與 table_open_cache 相關(guān)的機(jī)制,在源碼文檔 classTable__cache 中進(jìn)行了緣由介紹:

The idea behind this cache is that most statements don't need to go to a central table definition cache to get a TABLE object and therefore don't need to lock LOCK_open mutex. Instead they only need to go to one Table_cache instance (the specific instance is determined by thread id) and only lock the mutex protecting this cache. DDL statements that need to remove all TABLE objects from all caches need to lock mutexes for all Table_cache instances, but they are rare.

該機(jī)制簡(jiǎn)單來(lái)講就是:“MySQL 通過(guò)線程獲取本地 Table_cache 的緩存實(shí)例,減少對(duì)全局 LOCK_open 鎖的競(jìng)爭(zhēng),從而優(yōu)化并發(fā)查詢性能。DDL 操作需全局加鎖但較為罕見(jiàn)?!?/p>

具體場(chǎng)景描述

接下來(lái)結(jié)合 MySQL Table_cache 的緩存命中流程來(lái)講解一下步驟。這樣好理解一些。

關(guān)鍵步驟如下:

  • MySQL Server 查詢執(zhí)行時(shí),線程首先檢查當(dāng)前線程本地的 Table_cache 實(shí)例是否已經(jīng)緩存了所需表的句柄。
  • 如果當(dāng)前線程的 Table_cache 沒(méi)有命中,線程會(huì)檢查全局 table_open_cache 中是否有表對(duì)象存在。
  • 如果全局緩存也未命中,則需要從磁盤上打開(kāi)表文件并創(chuàng)建新的表對(duì)象。
  • 新打開(kāi)的表會(huì)添加到全局 table_open_cache 和線程本地 Table_cache 中。作為后續(xù)的緩存機(jī)制使用。
  • 如果 table_open_cache 已經(jīng)滿了,需要添加新的表對(duì)象時(shí),會(huì)使用 LRU 算法淘汰不用的表對(duì)象。

使用不合理有什么問(wèn)題

1、table_open_cache 配置過(guò)低但表極多:如果當(dāng)實(shí)例內(nèi)的表數(shù)量過(guò)多,而 table_open_cache 配置相對(duì)過(guò)低時(shí):可能會(huì)發(fā)現(xiàn)執(zhí)行查詢會(huì)很慢。此時(shí)如果調(diào)用 show processlist,可以看到狀態(tài) opening table 要花費(fèi)好幾秒。

2、當(dāng) table_open_cache 配置的數(shù)值太大時(shí):會(huì)顯著提高 MySQL 占用的內(nèi)存。網(wǎng)上有位大佬的案例,把數(shù)值從 2000 增加到 10000,內(nèi)存占用就從 500-600M 增長(zhǎng)到了 2.5GB 左右。

3、classTable__cache 緩存查詢性能下降:當(dāng) table_open_cache 本身使用的是哈希表作為數(shù)據(jù)結(jié)構(gòu),以此實(shí)現(xiàn)查詢。如果 table_open_cache 設(shè)置的過(guò)于大,也意味著查詢性能的下降(與數(shù)值合理的情況下對(duì)比)。

DTS 為什么會(huì)誘發(fā)這個(gè)問(wèn)題

雖然 DTS 普遍在文檔上標(biāo)榜通過(guò) binlog 來(lái)完成數(shù)據(jù)的同步和遷移。

作為程序員應(yīng)該能察覺(jué)到一些異常。畢竟軟件設(shè)計(jì)沒(méi)有銀彈。有利有弊。

實(shí)際上針對(duì)本次問(wèn)題,無(wú)主鍵表就有了明顯的不同差距點(diǎn)。

無(wú)主鍵表的掃描壓力

實(shí)際上 DTS 針對(duì)不包含主鍵的表,會(huì)追加一個(gè)字段做標(biāo)識(shí)位,并對(duì)所有沒(méi)有主鍵的表進(jìn)行掃描。

當(dāng)沒(méi)主鍵的表非常多時(shí),表大小的體積太大時(shí),進(jìn)行全表掃描,會(huì)造成查詢壓力,也會(huì)對(duì) table_open_cache 內(nèi)緩存的表數(shù)據(jù)產(chǎn)生擠壓(LRU)。

自然會(huì)對(duì) MySQL 造成顯著壓力。

為什么無(wú)主鍵不用 binlog

為什么這里不直接用 binlog 來(lái)做呢?

實(shí)際上:對(duì)于沒(méi)有主鍵或唯一索引的表,難以唯一標(biāo)識(shí)某一行記錄,很難解決并發(fā)更新或重復(fù)數(shù)據(jù)的問(wèn)題。從而無(wú)法準(zhǔn)確處理 UPDATE 和 DELETE 操作。

例如:沒(méi)有主鍵的表:UPDATE table SET columnA = 1 WHERE columnB = 2。如果 columnB 上沒(méi)有唯一約束,DTS 無(wú)法確定具體更新了哪些行。

而針對(duì)沒(méi)有沒(méi)有主鍵或唯一索引的表,DTS 會(huì)選擇全表掃描來(lái)確保數(shù)據(jù)同步的一致性和完整性:

  • 完整數(shù)據(jù)比對(duì):DTS 通過(guò)掃描源表和目標(biāo)表,比較數(shù)據(jù)的差異(如新增、更新、刪除行)。避免因定位失敗導(dǎo)致部分變更數(shù)據(jù)丟失或同步錯(cuò)誤。
  • 數(shù)據(jù)一致性保障:binlog 的變更操作通常是增量同步的一部分,而全表掃描可以同步歷史數(shù)據(jù)和當(dāng)前狀態(tài),確保目標(biāo)表與源表最終一致。

為什么會(huì)遇到這個(gè)問(wèn)題

實(shí)際上在這位朋友的 MySQL 實(shí)例中,由于多租戶的屬性,存在著單實(shí)例、單數(shù)據(jù)庫(kù)存在大量數(shù)據(jù)庫(kù)表的場(chǎng)景。同時(shí)也存在大量無(wú)主鍵表的情況。

本次做的是 MySQL 版本的升級(jí),常見(jiàn)流程是:購(gòu)買新的 MySQL8 實(shí)例,再通過(guò) DTS,從老的 MySQL5.6 同步數(shù)據(jù)到新的 MySQL 8.0 實(shí)例上。接著自動(dòng)開(kāi)啟實(shí)時(shí)同步,進(jìn)入增量同步。

DTS 必然會(huì)先進(jìn)行全量同步(binlog同步),再進(jìn)行持續(xù)性的增量同步(掃描無(wú)主鍵表)。勢(shì)必給實(shí)例本身帶來(lái)一定的壓力。

尤其是這類存在大量非主鍵表時(shí),意味著有持續(xù)的大量表掃描,疊加業(yè)務(wù)使用壓力,擠壓常用表的 cache,業(yè)務(wù)表 opening table 耗上個(gè)秒級(jí),對(duì)于用戶端出問(wèn)題是有較大可能性的。

DTS 需要面向的用戶群體過(guò)多,針對(duì)這種特殊場(chǎng)景,無(wú)限制的使用或其約定數(shù)值已無(wú)法很好的保護(hù)實(shí)例本身的使用。這也可以算得上 DTS 在設(shè)計(jì)上的一個(gè)缺陷。說(shuō)明至少這個(gè)場(chǎng)景本身并沒(méi)有根據(jù)實(shí)例查詢情況做到智能調(diào)速。

table_open_cache 配置建議

MySQL 官方給出的建議是:在實(shí)際使用中,可以通過(guò)檢查 Opened_tables (打開(kāi)過(guò)的表的數(shù)量總和)變量來(lái)確定是否需要增加表緩存。平時(shí)我們可以通過(guò)執(zhí)行 show global status 看到該值。

如果 Opened_tables 的值很大,而且不經(jīng)常使用 FLUSH TABLES(只強(qiáng)制關(guān)閉所有表并重新打開(kāi)),那么就應(yīng)該增加 table_open_cache 變量的值。

但是要注意,table_open_cache 再大。只要你實(shí)例里的表數(shù)量足夠多,大小夠大,使用的方式足夠頻繁,緩存的效益(性能)依舊會(huì)大大降低。

參考資料

  • How MySQL Opens and Closes Tables:https://dev.mysql.com/doc/refman/5.7/en/table-cache.html
  • Table_cache Class Reference:https://dev.mysql.com/doc/dev/mysql-server/8.4.3/classTable__cache.html#details
責(zé)任編輯:武曉燕 來(lái)源: 腦子進(jìn)煎魚了
相關(guān)推薦

2021-06-02 07:57:48

內(nèi)存管理

2022-05-18 08:25:59

MySQLutf8字符集數(shù)據(jù)庫(kù)

2013-04-18 09:29:03

OpenStack云管理平臺(tái)Folsom平臺(tái)

2013-01-04 10:43:46

IBMdW

2023-06-06 16:54:00

2018-05-08 06:22:06

物聯(lián)網(wǎng)多跳網(wǎng)絡(luò)網(wǎng)絡(luò)

2010-06-11 17:13:34

MySQL表索引

2023-09-20 14:54:17

MySQL

2012-08-17 10:01:07

云計(jì)算

2020-03-30 15:05:46

Kafka消息數(shù)據(jù)

2012-03-26 10:26:43

openstackeucalyptus

2021-07-09 09:24:06

NanoID UUID軟件開(kāi)發(fā)

2012-05-02 10:08:51

桌面Linux微軟

2022-04-13 20:53:15

Spring事務(wù)管理

2021-01-25 07:14:53

Cloud DevOps云計(jì)算

2023-03-22 09:10:18

IT文檔語(yǔ)言

2014-03-05 14:58:00

蘋果CarPlayiOS

2022-05-11 08:22:54

IO負(fù)載NFSOS

2015-12-07 10:49:43

卸載App用戶體驗(yàn)

2023-01-20 12:08:56

AIPythonTensorFlow
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

美女一区二区视频| 奇米影视777在线欧美电影观看| 国产蜜臀97一区二区三区| 国产日韩在线播放| 日韩精品视频播放| 日韩欧美网站| 亚洲成人亚洲激情| 国产91色在线观看| 日本在线视频网址| 国产片一区二区| 99国产在线观看| 国产成人麻豆免费观看| 欧美日韩视频一区二区三区| 亚洲人成77777在线观看网| 婷婷激情小说网| 国偷自产一区二区免费视频| 一区二区成人在线视频| 午夜视频久久久| 三级小视频在线观看| 久久99国内精品| 国产91在线高潮白浆在线观看| 久久久久久久极品内射| 成人国产精品一级毛片视频| 亚洲精美色品网站| 97人人模人人爽人人澡| 欧美日韩国产网站| 精品久久久久久久久久久| mm131午夜| 在线观看麻豆蜜桃| 国产日韩欧美一区二区三区综合| 国产精品久久久一区二区三区| 一区二区三区午夜| 日本亚洲免费观看| 秋霞午夜一区二区| 欧美成人aaaaⅴ片在线看| 欧美黄色一级视频| xvideos亚洲人网站| 五月天精品视频| 丝袜美腿一区二区三区动态图| 欧美va亚洲va国产综合| 午夜视频在线观| 一区二区三区| 7777精品久久久大香线蕉| the porn av| 亚洲成a人片| 一本久道久久综合中文字幕| 俄罗斯av网站| 69av成人| 欧美日韩精品二区| 国产黄视频在线| 绿色成人影院| 欧美日韩中文字幕日韩欧美| 成人黄色av片| 丝袜诱惑一区二区| 日韩欧美主播在线| 日韩精品无码一区二区三区免费 | 99久久精品国产毛片| 超碰97在线播放| 亚洲黄色小说网址| 成人激情黄色小说| 久99久在线| 可以在线观看的av网站| 欧美激情综合在线| 中文字幕一区二区三区在线乱码| 男人资源在线播放| 亚洲精品国产第一综合99久久| 欧洲美女和动交zoz0z| 色呦呦呦在线观看| 精品久久久久久久久久久| 激情婷婷综合网| 老司机精品视频网| 日韩欧美自拍偷拍| 亚洲 欧美 日韩在线| 日韩av资源网| 色噜噜亚洲精品中文字幕| 国产97免费视频| 亚洲日产国产精品| 国产精品电影久久久久电影网| 91成人一区二区三区| 国产成人精品网址| 欧美日本国产精品| 麻豆视频网站在线观看| 亚洲高清久久久| 久久久久免费精品| 欧美专区视频| 亚洲女同精品视频| tube国产麻豆| 亚洲欧美日韩一区在线观看| 国产精品丝袜高跟| 六月丁香综合网| 欧美国产亚洲另类动漫| 丁香色欲久久久久久综合网| 3d欧美精品动漫xxxx无尽| 91麻豆精品国产无毒不卡在线观看 | 蜜桃av免费看| 亚洲高清影视| 日本久久精品视频| 国产三级三级在线观看| 91在线视频在线| 99久re热视频精品98| 韩国成人动漫| 精品国产91乱码一区二区三区 | 亚洲高清三级视频| 亚洲第一中文av| 久久大胆人体视频| 久久天天躁日日躁| 无码人妻一区二区三区线| 国产精品综合在线视频| 日韩欧美三级电影| 成人国产电影在线观看| 欧美一区二区三区精品| 欧美18—19性高清hd4k| 亚洲二区视频| 99re在线观看视频| 免费网站成人| 欧洲色大大久久| 少妇户外露出[11p]| 在线中文一区| 国产欧美日韩丝袜精品一区| 青草久久伊人| 精品久久久久国产| jjzz黄色片| 欧美一区二区三区久久精品| 国产精品白丝jk喷水视频一区 | 日韩中文字幕视频网| 一区二区亚洲精品国产| 国产成人在线视频观看| 国产99精品在线观看| 尤物一区二区三区| avav成人| 中文字幕国产亚洲| 国产又粗又猛又黄视频| 91影院在线免费观看| www.国产在线播放| 日本久久伊人| 久精品免费视频| 亚洲AV无码一区二区三区少妇| ●精品国产综合乱码久久久久| 九九热在线免费| 欧美日韩高清| 日韩av手机在线| 青青青草原在线| 日韩欧美国产一区二区| 亚洲天堂网一区二区| 国产日韩视频| 蜜桃视频在线观看成人| 色吧亚洲日本| 亚洲性线免费观看视频成熟| 亚洲天堂男人av| 国产亚洲精品资源在线26u| 亚洲熟妇av一区二区三区| 免费黄色成人| 国产精品旅馆在线| 日本中文在线| 日韩一区二区在线免费观看| 久久伊人成人网| 91在线一区二区三区| 中文字幕无码不卡免费视频| 日韩.com| 亚洲综合一区二区不卡| 182在线播放| 亚洲精品综合久久中文字幕| 久久久久久无码精品大片| 欧美韩国日本综合| 99精品视频国产| 国产精品videossex久久发布| 国产精品二区三区| 亚洲一二三四| 久久韩剧网电视剧| 成人毛片视频免费看| 日韩欧美在线第一页| 超碰人人干人人| 国产成人自拍网| av黄色在线网站| 91综合久久| 动漫精品视频| 日韩欧美一区二区三区免费观看| 日韩最新在线视频| 黄色一级大片在线免费看国产一| 色成人在线视频| 少妇人妻丰满做爰xxx| 9久草视频在线视频精品| 97公开免费视频| 最新国产精品| 日韩精品一区二区三区色偷偷| 999久久久国产999久久久| 97国产在线视频| 日韩黄色影院| 日韩成人xxxx| 国产精品丝袜黑色高跟鞋| 五月天中文字幕一区二区| 中文字幕伦理片| 成人永久免费视频| 国产成人黄色网址| 亚洲激情综合| 欧美三级午夜理伦三级老人| 久久精品福利| 成人看片人aa| 国产欧美一区二区三区精品酒店| 欧美成人中文字幕| fc2在线中文字幕| 精品sm捆绑视频| 亚洲最新av网站| 大伊人狠狠躁夜夜躁av一区| 日本黄色片免费观看| 久久免费偷拍视频| 国产51自产区| 国内精品免费**视频| 免费观看成人网| 99国产精品99久久久久久粉嫩| 亚洲成人动漫在线| 欧美亚洲精品在线| 精品一区二区不卡| 日韩区一区二| 成人疯狂猛交xxx| 日韩三区在线| 欧洲亚洲妇女av| 18aaaa精品欧美大片h| 在线观看欧美日韩国产| 日本韩国一区| 亚洲精品乱码久久久久久金桔影视 | 岛国一区二区三区高清视频| 精品九九久久| 国产精品国内视频| 日韩不卡免费高清视频| 77777亚洲午夜久久多人| 欧美日韩在线视频免费观看| 久久色在线播放| 天堂а√在线官网| 在线观看视频99| 国产免费a∨片在线观看不卡| 日韩久久精品成人| 午夜成人免费影院| 亚洲国产一区二区三区四区| 成人久久久精品国产乱码一区二区| 日韩一区二区免费在线观看| 国产美女免费视频| 欧美一区二区三区电影| www.五月婷| 精品少妇一区二区三区日产乱码| 精品人妻午夜一区二区三区四区| 宅男噜噜噜66一区二区66| 国产又黄又爽视频| 日韩一区二区麻豆国产| 成人黄色在线观看视频| 欧美成人video| 天天操天天插天天射| 亚洲精品按摩视频| 日韩美女一级视频| 国产亚洲精品美女久久久| 成黄免费在线| 精品国偷自产在线视频| av官网在线播放| 久久久久久12| 成人私拍视频| 国产精品一区二区三区在线播放| 欧美电影在线观看网站| 国产乱肥老妇国产一区二| 精品国产三级| 国产乱码精品一区二区三区卡 | 日韩中文字幕精品| 成人午夜在线影视| 韩剧1988免费观看全集| 老司机2019福利精品视频导航| 国产精品电影在线观看| 国产人与zoxxxx另类91| 国产经品一区二区| 国产一区二区三区电影在线观看| 亚洲国产精品视频一区| 中文字幕亚洲综合久久五月天色无吗''| 日日噜噜夜夜狠狠久久丁香五月| 在线播放亚洲| 天天碰免费视频| 国产成人欧美日韩在线电影| 亚洲最大的黄色网| 国产精品私人自拍| 精品无码人妻一区二区三区品| 欧美视频在线免费| 91丨porny丨在线中文| 精品va天堂亚洲国产| 四虎久久免费| 91精品国产91久久久久久久久| yy6080久久伦理一区二区| 91在线播放视频| 国内成人自拍| 免费网站永久免费观看| 日韩成人av影视| 美女网站视频在线观看| 日本一区二区三区高清不卡| 久久国产精品波多野结衣| 五月天激情小说综合| 中文字幕在线日本| 欧美一区二区三级| 艳母动漫在线看| 欧美xxxx18性欧美| 日本综合视频| 精品不卡一区二区三区| 999久久久精品国产| 97在线播放视频| 国产成人精品网址| xxxxx99| 欧美午夜激情在线| www.av在线.com| 日韩中文字幕在线看| xxxxx性欧美特大| 成人动漫视频在线观看完整版| 色婷婷热久久| 色婷婷综合久久久久中文字幕| 成人av在线网| 欧美国产在线看| 91麻豆精品国产91久久久使用方法| 国产在线色视频| 456亚洲影院| 成人知道污网站| 中文字幕在线乱| 久久99精品久久久久久国产越南 | 免费日本黄色网址| 亚洲精品网站在线观看| 一级黄色录像大片| 亚洲午夜小视频| 黑人巨大亚洲一区二区久 | 亚洲国产日韩在线一区| 国产精品美女久久久久久久久久久 | 白浆在线视频| 成人欧美一区二区三区视频| 91精品推荐| 男生操女生视频在线观看| 中文字幕乱码亚洲精品一区| 久久久成人免费视频| 亚洲黄一区二区| 僵尸再翻生在线观看| 国产麻豆日韩| 99热这里只有精品8| 成人在线电影网站| 婷婷国产v国产偷v亚洲高清| 亚洲精品成人电影| 欧美激情欧美激情| avtt综合网| 99在线精品免费视频| 白白色 亚洲乱淫| 国产精品免费av一区二区| 日韩www在线| 国模套图日韩精品一区二区| 欧美日韩精品久久| 日韩黄色片在线观看| 国产精品酒店视频| 欧美精品粉嫩高潮一区二区| 国产高清一区二区三区视频 | 国产精品片aa在线观看| 国产av无码专区亚洲精品| 久久新电视剧免费观看| 在线观看日本网站| 在线观看久久久久久| 婷婷精品久久久久久久久久不卡| 日本不卡一区二区三区四区| 国产成人亚洲精品青草天美| 国产无码精品在线播放| 亚洲精品中文字幕av| 日本肉肉一区| 久久国产精品免费观看| 成人午夜电影网站| 69xxxx国产| 美女啪啪无遮挡免费久久网站| eeuss国产一区二区三区四区| 国产中文字幕免费观看| 国产精品视频一二| 国产女人18毛片18精品| 亚州国产精品久久久| 久久av超碰| 91插插插影院| 亚洲h动漫在线| 国产毛片av在线| 91成人理论电影| 久久电影一区| www日韩在线| 日韩电影视频免费| 久久青草视频| 日韩欧美国产综合在线| 欧美激情一区二区在线| 国产丰满美女做爰| 欧美最近摘花xxxx摘花| 国产精品国产三级国产在线观看| 91人人澡人人爽| 在线一区二区视频| 福利小视频在线| 日韩三级电影免费观看| 国产另类ts人妖一区二区| 欧美亚洲精品天堂| 插插插亚洲综合网| 久久91精品| 日本美女视频网站| 欧美麻豆精品久久久久久| 高清毛片在线观看| 中文字幕久久综合| 91浏览器在线视频| 亚洲xxxx天美| 国产欧美一区二区三区四区| 99亚洲一区二区| 91免费公开视频| 亚洲视频自拍偷拍|