MySQL 的碎片是 MySQL 運(yùn)維過(guò)程中比較常見(jiàn)的問(wèn)題,碎片的存在十分影響數(shù)據(jù)庫(kù)的性能,本文將對(duì) MySQL 碎片進(jìn)行一次講解。
公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出通榆免費(fèi)做網(wǎng)站回饋大家。
判斷方法:
MySQL 的碎片是否產(chǎn)生,通過(guò)查看
show table status from table_nameG;
這個(gè)命令中 Data_free 字段,如果該字段不為 0,則產(chǎn)生了數(shù)據(jù)碎片。
產(chǎn)生的原因:
1. 經(jīng)常進(jìn)行 delete 操作
經(jīng)常進(jìn)行 delete 操作,產(chǎn)生空白空間,如果進(jìn)行新的插入操作,MySQL將嘗試?yán)眠@些留空的區(qū)域,但仍然無(wú)法將其徹底占用,久而久之就產(chǎn)生了碎片;
演示:
創(chuàng)建一張表,往里面插入數(shù)據(jù),進(jìn)行一個(gè)帶有 where 條件或者 limit 的 delete 操作,刪除前后對(duì)比一下 Data_free 的變化。
刪除前:
刪除后:
Data_free 不為 0,說(shuō)明有碎片;
2. update 更新
update 更新可變長(zhǎng)度的字段(例如 varchar 類型),將長(zhǎng)的字符串更新成短的。之前存儲(chǔ)的內(nèi)容長(zhǎng),后來(lái)存儲(chǔ)是短的,即使后來(lái)插入新數(shù)據(jù),那么有一些空白區(qū)域還是沒(méi)能有效利用的。
演示:
創(chuàng)建一張表,往里面插入一條數(shù)據(jù),進(jìn)行一個(gè) update 操作,前后對(duì)比一下 Data_free 的變化。
CREATE TABLE `t1` ( `k` varchar(3000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
更新語(yǔ)句:update t1 set k='aaa';
更新前長(zhǎng)度:223 Data_free:0
更新后長(zhǎng)度:3 Data_free:204
Data_free 不為 0,說(shuō)明有碎片;
產(chǎn)生影響:
1. 由于碎片空間是不連續(xù)的,導(dǎo)致這些空間不能充分被利用;
2. 由于碎片的存在,導(dǎo)致數(shù)據(jù)庫(kù)的磁盤 I/O 操作變成離散隨機(jī)讀寫,加重了磁盤 I/O 的負(fù)擔(dān)。
清理辦法:
MyISAM:optimize table 表名;(OPTIMIZE 可以整理數(shù)據(jù)文件,并重排索引)
Innodb:
1. ALTER TABLE tablename ENGINE=InnoDB;(重建表存儲(chǔ)引擎,重新組織數(shù)據(jù))
2. 進(jìn)行一次數(shù)據(jù)的導(dǎo)入導(dǎo)出
碎片清理的性能對(duì)比:
引用我之前一個(gè)生產(chǎn)庫(kù)的數(shù)據(jù),對(duì)比一下清理前后的差異。
SQL執(zhí)行速度:
select count(*) from test.twitter_11;
修改前:1 row in set (7.37 sec)
修改后:1 row in set (1.28 sec)
結(jié)論:
通過(guò)對(duì)比,可以看到碎片清理前后,節(jié)省了很多空間,SQL執(zhí)行效率更快。所以,在日常運(yùn)維工作中,應(yīng)對(duì)碎片進(jìn)行定期清理,保證數(shù)據(jù)庫(kù)有穩(wěn)定的性能。
自學(xué):
1:b站上有很多mysql的學(xué)習(xí)視頻,都是各個(gè)培訓(xùn)機(jī)構(gòu)往期的培訓(xùn)視頻
2、淘寶上搜mysql,有很多店主整理好的培訓(xùn)視頻,大概三五塊錢就有很多
3、51cto,慕課網(wǎng),csdn之類的網(wǎng)站,上邊也有很多培訓(xùn)視頻,有需要會(huì)員的,也有免費(fèi)的
需要注意下視頻的培訓(xùn)日期以及數(shù)據(jù)庫(kù)版本,最好是選最近兩年的培訓(xùn)視頻,51cto風(fēng)哥的視頻就挺詳細(xì)的,就是有點(diǎn)貴
培訓(xùn)機(jī)構(gòu):
有很多線下的和線上的培訓(xùn)機(jī)構(gòu),例如晟數(shù)學(xué)苑,老男孩等等,培訓(xùn)的機(jī)構(gòu)海了去了,自己了解下哪個(gè)機(jī)構(gòu)比較好,報(bào)名就是了,就是需要花不少的錢
如果想以此就業(yè)的話,也可以去考慮去考下mysql的認(rèn)證,mysql ocp也就一千來(lái)塊錢
在用select語(yǔ)句查詢mysql數(shù)據(jù)庫(kù)的時(shí)候,你可以加上distinct修飾符,這樣就可以去掉好多重復(fù)的,比如
SELECT
distinct(`lcontent`)
FROM
`caiji_ym_liuyan`
當(dāng)然實(shí)際情況中的重復(fù)問(wèn)題還有很多,需要自己的實(shí)際情況,構(gòu)造相應(yīng)的select語(yǔ)句。
在我們?nèi)粘I钪信紶枙?huì)遇到一些自己不知道如何解決的問(wèn)題,比如使用安裝好的mysql。那么我們應(yīng)該怎樣解決這種自己不知道如何使用安裝好的mysql的情況呢?那么接下來(lái)就由我來(lái)介紹一下使用安裝好的mysql的步驟吧。
本次操作以Dell電腦為例,具體操作步驟如下:
第一步:
首先,打開(kāi)MySQLWorkbench,雙擊打開(kāi)即可。打開(kāi)后的界面如下所示,然后選擇數(shù)據(jù)庫(kù)實(shí)例,雙擊進(jìn)行登錄。圖中數(shù)據(jù)庫(kù)的實(shí)例是LocalinstanceMYSQL57
第二步:
然后,輸入用戶名和密碼進(jìn)行登錄。如下圖所示:
第三步:
登錄成功后,界面如下所示。其中,區(qū)域1顯示的是數(shù)據(jù)庫(kù)服務(wù)器中已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù)列表。區(qū)域2是關(guān)于數(shù)據(jù)庫(kù)的操作列表。區(qū)域三是sql的編輯器和執(zhí)行環(huán)境,區(qū)域4是執(zhí)行結(jié)果的列表
第四步:
在sql的編輯器中輸入測(cè)試語(yǔ)句,如圖所示,其中world數(shù)據(jù)庫(kù)是mysql自帶的測(cè)試數(shù)據(jù)庫(kù),然后選擇執(zhí)行(或者使用快捷鍵ctrl+enter)。執(zhí)行成功后,查詢結(jié)果會(huì)顯示在下面的列表中。
第五步:
使用完畢后,直接退出,并且如果無(wú)需數(shù)據(jù)庫(kù)的后繼操作的話,記得關(guān)掉MySQL的服務(wù)
看了我的方法,現(xiàn)在你學(xué)會(huì)如何使用安裝好的mysql了嗎?學(xué)會(huì)了的話就快快把這個(gè)方法分享出去,讓更多的人知道如何使用安裝好的mysql。以上就是使用安裝好的mysql的步驟。
本文章基于Dell品牌、Windows10系統(tǒng)撰寫的。
分享題目:mysql如怎么去 mysql57怎么刪除
URL鏈接:http://www.muchs.cn/article18/doeehdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、定制網(wǎng)站、ChatGPT、定制開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)