久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領取全套視頻
        千鋒教育

        關注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術干貨  > mysql update主鍵更新很慢會是什么原因?

        mysql update主鍵更新很慢會是什么原因?

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-10-13 18:30:50 1697193050

        一、mysql update主鍵更新很慢的原因

        Analyze Table

        MySQL 的Optimizer(優(yōu)化元件)在優(yōu)化SQL語句時,首先需要收集一些相關信息,其中就包括表的cardinality(可以翻譯為“散列程度”),它表示某個索引對應的列包含多少個不同的值——如果cardinality大大少于數(shù)據(jù)的實際散列程度,那么索引就基本失效了。

        我們可以使用SHOW INDEX語句來查看索引的散列程度:

        SHOW INDEX FROM PLAYERS;

        TABLE KEY_NAME COLUMN_NAME CARDINALITY

        PLAYERS PRIMARY PLAYERNO 14

        因為此時PLAYER表中不同的PLAYERNO數(shù)量遠遠多于14,索引基本失效。

        下面我們通過Analyze Table語句來修復索引:

        ANALYZE TABLE PLAYERS;

        SHOW INDEX FROM PLAYERS;

        結(jié)果是:

        TABLE KEY_NAME COLUMN_NAME CARDINALITY

        PLAYERS PRIMARY PLAYERNO 1000

        此時索引已經(jīng)修復,查詢效率大大提高。

        需要注意的是,如果開啟了binlog,那么Analyze Table的結(jié)果也會寫入binlog,我們可以在analyze和table之間添加關鍵字local取消寫入。

        Checksum Table

        數(shù)據(jù)在傳輸時,可能會發(fā)生變化,也有可能因為其它原因損壞,為了保證數(shù)據(jù)的一致,我們可以計算checksum(校驗值)。

        使用MyISAM引擎的表會把checksum存儲起來,稱為live checksum,當數(shù)據(jù)發(fā)生變化時,checksum會相應變化。

        在執(zhí)行Checksum Table時,可以在最后指定選項qiuck或是extended;quick表示返回存儲的checksum值,而extended會重新計算checksum,如果沒有指定選項,則默認使用extended。

        Optimize Table

        經(jīng)常更新數(shù)據(jù)的磁盤需要整理碎片,數(shù)據(jù)庫也是這樣,Optimize Table語句對MyISAM和InnoDB類型的表都有效。

        如果表經(jīng)常更新,就應當定期運行Optimize Table語句,保證效率。

        與Analyze Table一樣,Optimize Table也可以使用local來取消寫入binlog。

        Check Table

        數(shù)據(jù)庫經(jīng)??赡苡龅藉e誤,譬如數(shù)據(jù)寫入磁盤時發(fā)生錯誤,或是索引沒有同步更新,或是數(shù)據(jù)庫未關閉MySQL就停止了。

        遇到這些情況,數(shù)據(jù)就可能發(fā)生錯誤:

        Incorrect key file for table: ’ ‘. Try to repair it.

        此時,我們可以使用Check Table語句來檢查表及其對應的索引。

        譬如我們運行

        CHECK TABLE PLAYERS;

        結(jié)果是

        TABLE OP MSG_TYPE MSG_TEXT

        TENNIS.PLAYERS check status OK

        MySQL會保存表最近一次檢查的時間,每次運行check table都會存儲這些信息:

        執(zhí)行

        SELECT TABLE_NAME, CHECK_TIME

        FROM INFORMATION_SCHEMA.TABLES

        WHERE TABLE_NAME = ‘PLAYERS’

        AND TABLE_SCHEMA = ‘TENNIS’; /TENNIS是數(shù)據(jù)庫名/

        結(jié)果是

        TABLE_NAME CHECK_TIME

        PLAYERS 2006-08-21 16:44:25

        Check Table還可以指定其它選項:

        UPGRADE:用來測試在更早版本的MySQL中建立的表是否與當前版本兼容。

        QUICK:速度非常快的選項,在檢查各列的數(shù)據(jù)時,不會檢查鏈接(link)的正確與否,如果沒有遇到什么問題,可以使用這個選項。

        FAST:只檢查表是否正常關閉,如果在系統(tǒng)掉電之后沒有遇到嚴重問題,可以使用這個選項。

        CHANGED:只檢查上次檢查時間之后更新的數(shù)據(jù)。

        MEDIUM:默認的選項,會檢查索引文件和數(shù)據(jù)文件之間的鏈接正確性。

        EXTENDED:最慢的選項,會進行全面的檢查。

        Repair Table

        用于修復表,只對MyISAM和ARCHIVE類型的表有效。

        這條語句同樣可以指定選項:

        QUICK:非??斓倪x項,只修復索引樹。

        EXTENDED:最慢的選項,需要逐行重建索引。

        USE_FRM:只有當MYI文件丟失時才使用這個選項,全面重建整個索引。

        與Analyze Table一樣,Repair Table也可以使用local來取消寫入binlog。

        延伸閱讀:

        二、Navicat是什么

        Navicat是一套快速、可靠和全面的數(shù)據(jù)庫管理工具,專門用于簡化數(shù)據(jù)庫管理和降低管理成本。Navicat圖形界面直觀,提供簡便的管理方法,設計和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的數(shù)據(jù)。

        Navicat提供一個直觀和設計完善的用戶界面,用于創(chuàng)建、修改和管理資料庫的所有對象,例如表、視圖、函數(shù)或過程、索引、觸發(fā)器和序列。我們的表設計器幫助用戶創(chuàng)建和修改數(shù)據(jù)庫的表,讓設置高級選項,如關系、限制、觸發(fā)器和更多。

        使用Navicat瀏覽和修改數(shù)據(jù),插入、編輯、刪除數(shù)據(jù)或復制和粘貼記錄到數(shù)據(jù)表形式的數(shù)據(jù)編輯器,Navicat將運行相應的命令(例如INSERT或UPDATE),免除寫復雜的SQL。廣泛的數(shù)據(jù)編輯工具令編輯工作更為方便,例如外鍵查找、set/enum選擇器和記錄篩選。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
        免費領取
        今日已有369人領取成功
        劉同學 138****2860 剛剛成功領取
        王同學 131****2015 剛剛成功領取
        張同學 133****4652 剛剛成功領取
        李同學 135****8607 剛剛成功領取
        楊同學 132****5667 剛剛成功領取
        岳同學 134****6652 剛剛成功領取
        梁同學 157****2950 剛剛成功領取
        劉同學 189****1015 剛剛成功領取
        張同學 155****4678 剛剛成功領取
        鄒同學 139****2907 剛剛成功領取
        董同學 138****2867 剛剛成功領取
        周同學 136****3602 剛剛成功領取
        相關推薦HOT
        teradata與greenplum的區(qū)別?

        一、teradata與greenplum的區(qū)別 1、架構(gòu)不同:Teradata是一種對稱多處理(Symmetric Multiprocessing,SMP)架構(gòu),而Greenplum是一種以共享無阻塞詳情>>

        2023-10-13 20:07:18
        arcgis的mdb數(shù)據(jù)庫怎么轉(zhuǎn)成db數(shù)據(jù)庫?

        一、arcgis的mdb數(shù)據(jù)庫轉(zhuǎn)成db數(shù)據(jù)庫的方法1、導出mdb數(shù)據(jù)庫中的數(shù)據(jù)表使用ArcGIS中的Export功能將MDB數(shù)據(jù)庫中的數(shù)據(jù)表導出為CSV或Excel格式的文...詳情>>

        2023-10-13 20:04:31
        怎么分析判斷一個網(wǎng)站的后臺數(shù)據(jù)庫管理系統(tǒng)是什么?

        一、分析判斷一個網(wǎng)站的后臺數(shù)據(jù)庫管理系統(tǒng)是什么的方法1、根據(jù)網(wǎng)頁編程語言去判斷結(jié)合網(wǎng)頁編程語言和后臺數(shù)據(jù)庫系統(tǒng)的常見搭配可以判斷出該網(wǎng)...詳情>>

        2023-10-13 20:00:20
        MYSQL的幻讀和我們平常說的幻讀有什么區(qū)別?

        一、MYSQL的幻讀和我們平常說的幻讀有什么區(qū)別平常說的幻讀:事務1查詢id詳情>>

        2023-10-13 19:58:38
        怎么確保mysql數(shù)據(jù)庫主從數(shù)據(jù)一定是一樣的?

        一、確保mysql數(shù)據(jù)庫主從數(shù)據(jù)一定是一樣的方法1、確保同步狀態(tài)正常主從數(shù)據(jù)庫的同步狀態(tài)正常是保證主從數(shù)據(jù)一致性的前提,需要定期監(jiān)控主從同步...詳情>>

        2023-10-13 19:55:29
        快速通道
        泰安市| 武夷山市| 柳河县| 富宁县| 来宾市| 扶余县| 津南区| 集贤县| 孟津县| 兴文县| 阳山县| 江津市| 綦江县| 都兰县| 塔城市| 丹巴县| 罗平县| 丹江口市| 北票市| 泰顺县| 来宾市| 获嘉县| 石门县| 静海县| 塔河县| 都兰县| 汉沽区| 山阳县| 镇坪县| 新丰县| 上高县| 南郑县| 洪泽县| 白玉县| 罗江县| 潮安县| 德庆县| 桑日县| 涿鹿县| 安吉县| 饶阳县|