2025年騰訊mysql面試題及答案_第1頁
2025年騰訊mysql面試題及答案_第2頁
2025年騰訊mysql面試題及答案_第3頁
2025年騰訊mysql面試題及答案_第4頁
2025年騰訊mysql面試題及答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2025年騰訊mysql面試題及答案1.如何理解InnoDB的多版本并發(fā)控制(MVCC)?它如何解決讀寫沖突?InnoDB的MVCC通過記錄行的多個(gè)版本實(shí)現(xiàn),核心依賴undo日志和事務(wù)可見性判斷。每行數(shù)據(jù)在更新時(shí)會(huì)提供undo日志,記錄舊版本數(shù)據(jù)。每個(gè)事務(wù)有唯一的事務(wù)ID(trx_id),當(dāng)讀取數(shù)據(jù)時(shí),通過比較當(dāng)前事務(wù)ID與數(shù)據(jù)行的創(chuàng)建版本號(hào)(DB_TRX_ID)和刪除版本號(hào)(DB_ROLL_PTR),確定哪些版本對(duì)當(dāng)前事務(wù)可見。具體來說,當(dāng)事務(wù)T1讀取數(shù)據(jù)時(shí),若數(shù)據(jù)行的創(chuàng)建版本號(hào)小于T1的事務(wù)ID(未被未提交事務(wù)修改),且刪除版本號(hào)不存在或大于T1的事務(wù)ID(未被未提交事務(wù)刪除),則該版本可見。若當(dāng)前版本不可見,會(huì)通過undo日志回滾到最近的可見版本。這種機(jī)制使得讀操作無需加鎖(一致性非鎖定讀),寫操作通過行鎖隔離,從而實(shí)現(xiàn)讀寫不阻塞,提升并發(fā)性能。但需注意,RR隔離級(jí)別下MVCC會(huì)通過“一致性視圖”固定可見版本,而RC隔離級(jí)別每次查詢都提供新視圖,可能導(dǎo)致不可重復(fù)讀。2.索引失效的常見場(chǎng)景有哪些?如何避免?索引失效的典型場(chǎng)景包括:(1)索引列使用函數(shù)或表達(dá)式:如`SELECTFROMuserWHEREDATE(create_time)='2024-01-01'`,DATE()函數(shù)會(huì)導(dǎo)致索引無法使用,應(yīng)改為`create_time>='2024-01-01'ANDcreate_time<'2024-01-02'`。(2)隱式類型轉(zhuǎn)換:若字段類型為VARCHAR但查詢時(shí)傳入數(shù)字(如`SELECTFROMuserWHEREphone),MySQL會(huì)嘗試將字段轉(zhuǎn)為數(shù)字,導(dǎo)致索引失效,需保持類型一致(加引號(hào))。(3)范圍查詢后使用等值條件:復(fù)合索引(a,b,c)中,若查詢條件為`a>10ANDb=20`,則b的索引會(huì)失效,因范圍查詢(a>10)后無法利用后續(xù)索引列。(4)OR條件未完全覆蓋索引列:復(fù)合索引(a,b)中,`a=1ORb=2`無法使用索引,因OR會(huì)導(dǎo)致索引掃描合并成本高于全表掃描。(5)索引列使用否定操作(!=、NOTIN):MySQL對(duì)否定條件的索引支持較弱,可能全表掃描。避免方法:避免對(duì)索引列做計(jì)算/函數(shù)操作,將計(jì)算移到應(yīng)用層;確保查詢條件類型與字段類型一致;復(fù)合索引遵循“最左前綴法則”,將等值條件放在范圍條件前;用UNION替代OR(如`(SELECTFROMtWHEREa=1)UNION(SELECTFROMtWHEREb=2)`);對(duì)否定條件,若數(shù)據(jù)分布均勻可考慮覆蓋索引(如覆蓋索引包含查詢列,避免回表)。3.事務(wù)的ACID特性中,InnoDB如何保證原子性和持久性?原子性通過undo日志實(shí)現(xiàn)。事務(wù)執(zhí)行過程中,對(duì)數(shù)據(jù)的修改會(huì)先記錄到undo日志(回滾日志)。若事務(wù)失?。ㄈ绫罎⒒蛑鲃?dòng)回滾),InnoDB通過undo日志回滾所有未提交的修改,確保事務(wù)的原子性。undo日志在事務(wù)開始時(shí)分配,每次修改前記錄舊值,回滾時(shí)根據(jù)undo日志反向操作(如插入的反向是刪除,更新的反向是恢復(fù)舊值)。持久性通過redo日志(重做日志)和雙寫緩沖區(qū)(DoublewriteBuffer)保證。redo日志記錄事務(wù)對(duì)數(shù)據(jù)頁的物理修改(如某個(gè)數(shù)據(jù)頁的某個(gè)偏移量被修改為某個(gè)值)。事務(wù)提交時(shí),InnoDB將redo日志從內(nèi)存寫入磁盤(fsync操作),即使后續(xù)數(shù)據(jù)庫崩潰,重啟時(shí)可通過redo日志重新應(yīng)用已提交但未刷盤的數(shù)據(jù)頁修改,確保已提交事務(wù)不丟失。雙寫緩沖區(qū)是為了防止部分寫(PartialWrite)問題:數(shù)據(jù)頁從內(nèi)存刷盤時(shí),若磁盤寫入中途失?。ㄈ绲綦姡赡軐?dǎo)致數(shù)據(jù)頁損壞。InnoDB先將數(shù)據(jù)頁寫入雙寫緩沖區(qū)(共享表空間中的連續(xù)區(qū)域),再寫入數(shù)據(jù)文件。若數(shù)據(jù)頁寫入失敗,可從雙寫緩沖區(qū)恢復(fù)完整數(shù)據(jù)頁,再應(yīng)用redo日志,確保數(shù)據(jù)頁的完整性。4.主從復(fù)制延遲的常見原因及解決方案?延遲原因:(1)主庫大事務(wù):主庫執(zhí)行一個(gè)包含10萬條更新的事務(wù),從庫需單線程回放(傳統(tǒng)異步復(fù)制),導(dǎo)致延遲。(2)從庫硬件性能不足:從庫CPU、磁盤IO低于主庫,無法及時(shí)處理relaylog。(3)網(wǎng)絡(luò)延遲:主從跨機(jī)房同步時(shí),binlog傳輸耗時(shí)增加。(4)從庫并發(fā)回放能力低:傳統(tǒng)復(fù)制使用單線程回放,高并發(fā)場(chǎng)景下無法利用多核。(5)鎖競(jìng)爭(zhēng):從庫回放事務(wù)時(shí),若與其他查詢(如慢查詢)競(jìng)爭(zhēng)行鎖,導(dǎo)致回放暫停。解決方案:(1)優(yōu)化主庫事務(wù):拆分大事務(wù)為多個(gè)小事務(wù)(如批量更新改為逐條或按批次提交),減少單事務(wù)對(duì)從庫的壓力。(2)提升從庫硬件:使用更快的磁盤(如SSD)、增加CPU核心數(shù),優(yōu)化從庫配置(如調(diào)整innodb_buffer_pool_size、innodb_log_file_size)。(3)使用并行復(fù)制:MySQL5.7+支持基于組提交的并行復(fù)制(LogicalClock),將主庫同一組提交的事務(wù)在從庫并行回放;8.0+支持更細(xì)粒度的庫級(jí)/表級(jí)并行復(fù)制,提升回放速度。(4)調(diào)整復(fù)制拓?fù)洌翰捎眉?jí)聯(lián)復(fù)制(主->從1->從2),減輕主庫壓力;或使用半同步復(fù)制(semi-sync),確保主庫提交事務(wù)后等待至少一個(gè)從庫確認(rèn),平衡延遲與一致性。(5)監(jiān)控與預(yù)警:通過`SHOWSLAVESTATUS`查看Seconds_Behind_Master,結(jié)合pt-heartbeat工具實(shí)時(shí)監(jiān)控延遲;對(duì)關(guān)鍵業(yè)務(wù)(如支付),可通過從庫優(yōu)先讀(讀擴(kuò)散)或強(qiáng)制主庫讀(寫后讀)避免延遲影響。5.如何設(shè)計(jì)高并發(fā)場(chǎng)景下的訂單表索引?需考慮哪些因素?訂單表常見字段:order_id(主鍵)、user_id、create_time、status(狀態(tài),如0未支付、1已支付)、amount(金額)、seller_id(商家ID)。高并發(fā)場(chǎng)景下,索引設(shè)計(jì)需結(jié)合高頻查詢場(chǎng)景和寫入性能。高頻查詢場(chǎng)景:(1)用戶查詢自己的訂單:`WHEREuser_id=?ORDERBYcreate_timeDESCLIMIT20`;(2)商家查詢待處理訂單:`WHEREseller_id=?ANDstatusIN(0,1)ORDERBYcreate_timeASC`;(3)按時(shí)間范圍統(tǒng)計(jì)訂單金額:`WHEREcreate_timeBETWEEN?AND?GROUPBYstatus`;(4)根據(jù)訂單ID快速查詢(主鍵已滿足)。索引設(shè)計(jì):針對(duì)場(chǎng)景(1):創(chuàng)建(user_id,create_time)的復(fù)合索引。user_id是等值條件,create_time是排序條件,覆蓋索引可避免回表(若查詢字段包含在索引中)。若查詢需返回訂單金額等字段,可擴(kuò)展索引為(user_id,create_time)INCLUDE(amount,status)(MySQL8.0支持降序索引,可指定create_timeDESC優(yōu)化排序)。針對(duì)場(chǎng)景(2):創(chuàng)建(seller_id,status,create_time)的復(fù)合索引。seller_id等值,status范圍(IN操作視為范圍),create_time排序。需注意,若status的可選值較少(如0-5),IN操作可能退化為全索引掃描,但仍比全表掃描高效。針對(duì)場(chǎng)景(3):創(chuàng)建(create_time,status)的復(fù)合索引。時(shí)間范圍是范圍條件,status用于分組,索引可快速定位時(shí)間范圍內(nèi)的數(shù)據(jù),并按status分組。若需統(tǒng)計(jì)金額,可擴(kuò)展索引為(create_time,status)INCLUDE(amount),避免回表。需考慮的因素:(1)寫入性能:索引越多,插入/更新時(shí)維護(hù)索引的開銷越大。需權(quán)衡查詢性能與寫入延遲,避免過度索引(如對(duì)低基數(shù)列單獨(dú)建索引)。(2)索引選擇性:選擇高選擇性的列(如user_id比status更適合作為索引前綴,因user_id的唯一值更多)。(3)覆蓋索引:盡量讓查詢通過索引直接獲取數(shù)據(jù),減少回表操作(如將查詢字段包含在索引中)。(4)排序優(yōu)化:索引順序與查詢的ORDERBY一致,避免filesort操作。(5)分區(qū)表:若訂單量極大(如億級(jí)),可按create_time做范圍分區(qū)(如按月分區(qū)),縮小索引掃描范圍。6.InnoDB的鎖機(jī)制如何處理幻讀?RR隔離級(jí)別是否完全解決了幻讀?InnoDB在RR隔離級(jí)別下通過間隙鎖(GapLock)和記錄鎖(RecordLock)的組合(Next-KeyLock)解決幻讀。幻讀指事務(wù)T1讀取某些行后,事務(wù)T2插入新行并提交,T1再次讀取時(shí)發(fā)現(xiàn)新行,導(dǎo)致前后結(jié)果集不一致。Next-KeyLock鎖定的是索引記錄的間隙(Gap)和記錄本身。例如,索引值為10、20、30,當(dāng)T1執(zhí)行`SELECTFROMtWHEREid>15FORUPDATE`,會(huì)鎖定(10,20)、(20,30)的間隙及id=20、30的記錄。此時(shí)T2嘗試插入id=18的行會(huì)被阻塞,直到T1提交,避免T1再次查詢時(shí)出現(xiàn)新行。但嚴(yán)格來說,RR隔離級(jí)別是否完全解決幻讀取決于“幻讀”的定義。根據(jù)ANSI標(biāo)準(zhǔn),幻讀指“同一查詢的結(jié)果集大小變化”,而InnoDB的RR通過Next-KeyLock確實(shí)阻止了新行的插入,避免了結(jié)果集大小的變化。但在某些情況下(如快照讀),InnoDB使用MVCC的一致性視圖,可能允許幻讀。例如,事務(wù)T1第一次查詢id>15得到(20,30),此時(shí)T2插入id=18并提交,T1第二次查詢(快照讀)仍看到(20,30),因?yàn)镸VCC基于事務(wù)開始時(shí)的視圖。但如果T1使用當(dāng)前讀(如SELECT...FORUPDATE),則會(huì)加Next-KeyLock,阻止T2插入,避免幻讀。因此,InnoDB的RR通過Next-KeyLock(當(dāng)前讀)和MVCC(快照讀)共同作用,在實(shí)際應(yīng)用中可視為解決了幻讀問題。7.如何優(yōu)化慢查詢?請(qǐng)描述具體步驟。優(yōu)化慢查詢需結(jié)合工具分析和業(yè)務(wù)場(chǎng)景,步驟如下:(1)開啟慢查詢?nèi)罩荆涸O(shè)置`slow_query_log=ON`,`long_query_time=1`(記錄執(zhí)行時(shí)間超過1秒的查詢),`log_queries_not_using_indexes=ON`(記錄未使用索引的查詢)。(2)使用工具分析日志:通過pt-query-digest解析慢查詢?nèi)罩?,統(tǒng)計(jì)高頻、高耗時(shí)、高鎖等待的查詢。例如,發(fā)現(xiàn)某條`SELECTFROMorderWHEREuser_id=?ANDstatus=?`的查詢耗時(shí)500ms,且掃描行數(shù)10萬。(3)分析執(zhí)行計(jì)劃:對(duì)目標(biāo)查詢執(zhí)行`EXPLAIN`,查看type(訪問類型,理想為ref或eq_ref)、key(使用的索引)、rows(預(yù)估掃描行數(shù))、Extra(是否Usingfilesort/Usingtemporary)。若type為ALL(全表掃描),說明未使用索引;若rows遠(yuǎn)大于實(shí)際匹配行數(shù),說明索引選擇性差。(4)定位問題原因:無索引或索引未命中:如上述order表缺少(user_id,status)索引;索引失效:如查詢條件包含函數(shù)或隱式類型轉(zhuǎn)換;鎖等待:查詢被其他事務(wù)的鎖阻塞(通過`SHOWENGINEINNODBSTATUS`查看鎖信息);數(shù)據(jù)量過大:?jiǎn)伪頂?shù)據(jù)量超1億,導(dǎo)致索引掃描時(shí)間增加。(5)優(yōu)化措施:添加或調(diào)整索引:為order表創(chuàng)建(user_id,status)復(fù)合索引,若查詢需返回其他字段(如create_time),可擴(kuò)展為(user_id,status,create_time)覆蓋索引;重寫查詢:避免SELECT,只查詢需要的字段;將OR條件改為UNION;將子查詢改為JOIN(如`SELECTa.FROMaWHEREidIN(SELECTidFROMb)`改為`SELECTa.FROMaJOINbONa.id=b.id`);分頁優(yōu)化:對(duì)`LIMIT100000,20`的分頁查詢,若按create_time排序,可記錄最后一條的create_time,改為`WHEREcreate_time<last_timeORDERBYcreate_timeDESCLIMIT20`;分庫分表:對(duì)超大規(guī)模數(shù)據(jù),按user_id哈希分庫,或按create_time時(shí)間范圍分表,減少單表數(shù)據(jù)量;緩存熱點(diǎn)數(shù)據(jù):對(duì)高頻讀、低頻寫的查詢(如用戶最近10條訂單),使用Redis緩存結(jié)果,減少數(shù)據(jù)庫壓力。(6)驗(yàn)證優(yōu)化效果:重新執(zhí)行查詢,觀察執(zhí)行時(shí)間、掃描行數(shù)是否下降;監(jiān)控?cái)?shù)據(jù)庫QPS、CPU、IO負(fù)載,確認(rèn)優(yōu)化未引入新瓶頸(如索引過多導(dǎo)致寫入變慢)。8.MySQL8.0相比5.7有哪些重要改進(jìn)?對(duì)高并發(fā)場(chǎng)景有何幫助?MySQL8.0的重要改進(jìn)及對(duì)高并發(fā)的幫助:(1)原子DDL:DDL操作(如ALTERTABLE)通過事務(wù)實(shí)現(xiàn),失敗時(shí)自動(dòng)回滾,避免中間狀態(tài)導(dǎo)致的數(shù)據(jù)不一致。高并發(fā)場(chǎng)景中,修改表結(jié)構(gòu)更安全,減少因DDL失敗導(dǎo)致的服務(wù)中斷。(2)隱藏索引(InvisibleIndexes):索引可標(biāo)記為不可見(INVISIBLE),不影響查詢優(yōu)化器選擇,但仍可用于測(cè)試索引效果。上線新索引前可先設(shè)為隱藏,觀察是否被查詢使用,避免直接添加索引對(duì)寫入的影響。(3)降序索引(DescendingIndexes):支持顯式創(chuàng)建降序索引(如INDEX(aDESC,bASC)),優(yōu)化ORDERBYDESC的排序性能,避免filesort操作。(4)更細(xì)粒度的并行復(fù)制:基于WRITESET的并行復(fù)制(binlog_group_commit_sync_delay控制組提交),從庫可并行回放主庫同一組提交的事務(wù),顯著降低主從復(fù)制延遲,適合高并發(fā)寫場(chǎng)景。(5)JSON數(shù)據(jù)類型優(yōu)化:支持JSON字段的索引(提供列+普通索引),提升JSON查詢性能,適應(yīng)微服務(wù)架構(gòu)中半結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)需求。(6)哈希索引支持(InnoDB):對(duì)二級(jí)索引支持哈希加速(innodb_secondary_index_use_hash=ON),提升等值查詢性能(如WHEREa=1),但范圍查詢?nèi)砸蕾嘊+樹。(7)連接管理改進(jìn):引入更高效的連接池機(jī)制,減少連接建立/關(guān)閉的開銷;支持連接屬性(ConnectionAttributes),可跟蹤請(qǐng)求來源(如應(yīng)用服務(wù)名),方便監(jiān)控和限流。(8)密碼認(rèn)證升級(jí):默認(rèn)使用caching_sha2_password認(rèn)證插件,提升安全性;支持角色(ROLE)管理,簡(jiǎn)化權(quán)限分配,適合多團(tuán)隊(duì)協(xié)作的高并發(fā)系統(tǒng)。這些改進(jìn)在高并發(fā)場(chǎng)景中,通過提升復(fù)制效率(減少延遲)、優(yōu)化索引使用(降序索引、隱藏索引)、增強(qiáng)DDL安全性(原子DDL),有效降低了數(shù)據(jù)庫瓶頸,提升了系統(tǒng)的穩(wěn)定性和吞吐量。9.如何設(shè)計(jì)MySQL的高可用架構(gòu)?騰訊常用的方案有哪些?高可用架構(gòu)設(shè)計(jì)需滿足故障自動(dòng)切換(RTO短)、數(shù)據(jù)一致性(RPO低)、讀寫負(fù)載均衡等需求。常見方案及騰訊實(shí)踐:(1)主從復(fù)制+半同步復(fù)制+監(jiān)控切換:架構(gòu):?jiǎn)沃鞫鄰?,主庫寫,從庫讀;半同步復(fù)制確保主庫提交事務(wù)前至少一個(gè)從庫確認(rèn)接收binlog;監(jiān)控系統(tǒng)(如Prometheus+Grafana)實(shí)時(shí)檢查主庫狀態(tài)(如心跳、SQL線程狀態(tài))。切換:主庫宕機(jī)時(shí),監(jiān)控系統(tǒng)選擇一個(gè)從庫(IO線程和SQL線程均正常)提升為主庫,其他從庫重新指向新主庫。需解決腦裂問題(舊主恢復(fù)后需只讀),數(shù)據(jù)一致性依賴半同步的ACK機(jī)制(未同步的事務(wù)可能丟失,但RPO可控)。騰訊實(shí)踐:早期業(yè)務(wù)可能采用此方案,適合對(duì)延遲敏感但數(shù)據(jù)一致性要求中等的場(chǎng)景(如日志系統(tǒng))。(2)MySQLGroupReplication(MGR):架構(gòu):基于Paxos協(xié)議的組復(fù)制,支持多主(單寫模式更常用),自動(dòng)成員管理。每個(gè)節(jié)點(diǎn)維護(hù)相同的數(shù)據(jù)副本,寫操作需多數(shù)派確認(rèn)(Quorum)。優(yōu)勢(shì):自動(dòng)故障轉(zhuǎn)移(節(jié)點(diǎn)宕機(jī)后,剩余節(jié)點(diǎn)重新選舉主庫),數(shù)據(jù)強(qiáng)一致(寫操作需多數(shù)派確認(rèn)),適合對(duì)數(shù)據(jù)一致性要求高的場(chǎng)景(如支付核心系統(tǒng))。騰訊實(shí)踐:在金融級(jí)業(yè)務(wù)中,MGR結(jié)合分布式事務(wù)框架(如Seata),確??鐜觳僮鞯囊恢滦裕煌ㄟ^調(diào)整group_replication_member_weight控制優(yōu)先級(jí),避免腦裂。(3)DRDS(分布式關(guān)系型數(shù)據(jù)庫服務(wù)):架構(gòu):騰訊云提供的分布式數(shù)據(jù)庫中間件,支持分庫分表、讀寫分離、自動(dòng)故障轉(zhuǎn)移。應(yīng)用通過DRDS訪問后端MySQL實(shí)例,DRDS負(fù)責(zé)路由、負(fù)載均衡、容災(zāi)。優(yōu)勢(shì):屏蔽底層數(shù)據(jù)庫細(xì)節(jié),自動(dòng)處理分庫分表的路由(如按user_id哈希拆分);讀寫分離策略(如近源讀、延遲感知讀)提升讀性能;故障時(shí)自動(dòng)切換可用實(shí)例,RTO<30秒。騰訊實(shí)踐:適合高并發(fā)、海量數(shù)據(jù)的互聯(lián)網(wǎng)業(yè)務(wù)(如電商訂單、用戶系統(tǒng)),DRDS與TBase(騰訊自研分布式數(shù)據(jù)庫)結(jié)合,支持超大規(guī)模數(shù)據(jù)存儲(chǔ)。(4)InnoDBCluster:架構(gòu):MySQL官方推出的高可用方案,集成MGR、MySQLRouter(路由)和Shell管理工具。MySQLRouter負(fù)責(zé)連接路由(寫請(qǐng)求到主庫,讀請(qǐng)求到從庫),自動(dòng)感知主庫變化。優(yōu)勢(shì):部署簡(jiǎn)單(通過Shell腳本一鍵初始化),適合中小規(guī)模業(yè)務(wù)快速搭建高可用環(huán)境。騰訊實(shí)踐:在內(nèi)部測(cè)試環(huán)境或輕量級(jí)業(yè)務(wù)中使用,結(jié)合云原生技術(shù)(如K8s)實(shí)現(xiàn)自動(dòng)擴(kuò)縮容。選擇方案時(shí)需結(jié)合業(yè)務(wù)需求:數(shù)據(jù)一致性要求高選MGR/DRDS;延遲敏感選主從+半同步;超大規(guī)模數(shù)據(jù)選DRDS分庫分表。騰訊內(nèi)部根據(jù)業(yè)務(wù)場(chǎng)景混合使用多種方案,如核心交易用MGR強(qiáng)一致,日志類用主從異步復(fù)制,社交關(guān)系鏈用DRDS分庫分表。10.如何診斷MySQL的CPU過高問題?診斷CPU過高需從查詢、鎖、配置、硬件多維度分析,步驟如下:(1)確認(rèn)CPU消耗類型:通過`top`命令查看,若user%高(用戶態(tài)CPU),通常是查詢計(jì)算(如排序、JOIN)或索引掃描;若sys%高(內(nèi)核態(tài)CPU),可能是IO等待或鎖競(jìng)爭(zhēng)。(2)查看慢查詢和線程狀態(tài):執(zhí)行`SHOWPROCESSLIST`,觀察是否有大量狀態(tài)為“Copyingtotmptable”(臨時(shí)表)、“Sortingresult”(排序)的線程。若有,說明查詢需優(yōu)化(如增加索引避免臨時(shí)表,調(diào)整排序字段順序)。(3)分析索引使用情況:通過`EXPLAINFORMAT=JSON`查看查詢的執(zhí)行計(jì)劃,檢查是否有全表掃描(type=ALL)、文件排序(Usingfilesort)、臨時(shí)表(Usingtemporary)。例如,某條JOIN查詢未使用索引,導(dǎo)致掃描行數(shù)百萬,CPU被大量消耗。(4)檢查鎖等待:執(zhí)行`SHOWENGINEINNODBSTATUS`,查看`LATESTDETECTEDDEADLOCK`和`ROWLOCKS`部分,確認(rèn)是否

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論