欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

探討Mysql中OPTIMIZE TABLE的作用詳解

 更新時(shí)間:2013年06月09日 17:45:38   作者:  
本篇文章是對Mysql中OPTIMIZE TABLE的作用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

當(dāng)您的庫中刪除了大量的數(shù)據(jù)后,您可能會發(fā)現(xiàn)數(shù)據(jù)文件尺寸并沒有減小。這是因?yàn)閯h 除操作后在數(shù)據(jù)文件中留下碎片所致。Discuz! 在系統(tǒng)數(shù)設(shè)置界面提供了數(shù)據(jù)表優(yōu)化的功能,可以去除刪除操作后留下的數(shù)據(jù)文件碎片,減小文件尺寸,加快未來的讀寫操作。您只要在做完批量刪除,或定期(如 每一兩個(gè)月)進(jìn)行一次數(shù)據(jù)表優(yōu)化操作即可。

OPTIMIZE TABLE通過制作原來的表的一個(gè)臨時(shí)副本來工作

OPTIMIZE TABLE語法
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

如果您已經(jīng)刪除了表的一大部分,或者如果您已經(jīng)對含有可變長度行的表(含有 VARCHAR, BLOB或TEXT列的表)進(jìn)行了很多更改,則應(yīng)使用OPTIMIZE TABLE。被刪除的記錄被保持在鏈接清單中,后續(xù)的INSERT操作會重新使用舊的記錄位置。您可以使用OPTIMIZE TABLE來重新利用未使用的空間,并整理數(shù)據(jù)文件的碎片。

在多數(shù)的設(shè)置中,您根本不需要運(yùn)行OPTIMIZE TABLE。即使您對可變長度的行進(jìn)行了大量的更新,您也不需要經(jīng)常運(yùn)行,每周一次或每月一次即可,只對特定的表運(yùn)行。

OPTIMIZE TABLE只對MyISAM, BDB和InnoDB表起作用。

對于MyISAM表,OPTIMIZE TABLE按如下方式操作:

1. 如果表已經(jīng)刪除或分解了行,則修復(fù)表。
2. 如果未對索引頁進(jìn)行分類,則進(jìn)行分類。
3. 如果表的統(tǒng)計(jì)數(shù)據(jù)沒有更新(并且通過對索引進(jìn)行分類不能實(shí)現(xiàn)修復(fù)),則進(jìn)行更新。

對于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上。對于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,這會重建表。重建操作能更新索引統(tǒng)計(jì)數(shù)據(jù)并釋放成簇索引中的未使用的空間。請參見13.5.2.1節(jié),“ANALYZE TABLE語法”。

使用—skip-new或—safe-mode選項(xiàng)可以啟動(dòng)mysqld。通過啟動(dòng)mysqld,您可以使OPTIMIZE TABLE對其它表類型起作用。

注意,在OPTIMIZE TABLE運(yùn)行過程中,MySQL會鎖定表。

OPTIMIZE TABLE語句被寫入到二進(jìn)制日志中,除非使用了自選的NO_WRITE_TO_BINLOG關(guān)鍵詞(或其別名LOCAL)。已經(jīng)這么做了,因此,用于 MySQL服務(wù)器的OPTIMIZE TABLE命令的作用相當(dāng)于一個(gè)復(fù)制主服務(wù)器,在默認(rèn)情況下,這些命令將被復(fù)制到復(fù)制從屬服務(wù)器中。

相關(guān)文章

  • MySQL備份恢復(fù)設(shè)計(jì)思路

    MySQL備份恢復(fù)設(shè)計(jì)思路

    這篇文章主要介紹了MySQL備份恢復(fù)設(shè)計(jì)思路,幫助大家更好的維護(hù)數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • MySQL實(shí)現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲過程

    MySQL實(shí)現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲過程

    這篇文章主要介紹了MySQL實(shí)現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲過程,需要的朋友可以參考下
    2017-02-02
  • MySQL中order by的使用詳情

    MySQL中order by的使用詳情

    在使用select語句時(shí)可以結(jié)合order by對查詢的數(shù)據(jù)進(jìn)行排序。如果不使用order by默認(rèn)情況下MySQL返回的數(shù)據(jù)集,與它在底層表中的順序相同,可能與你添加數(shù)據(jù)到表中的順序一致,也可能不一致,如果希望得到的數(shù)據(jù)有順序,就該明確排序方式,下面詳細(xì)內(nèi)容需要的朋友可以參考一下
    2021-11-11
  • mysql視圖原理與用法實(shí)例小結(jié)

    mysql視圖原理與用法實(shí)例小結(jié)

    這篇文章主要介紹了mysql視圖原理與用法,結(jié)合實(shí)例形式分析了mysql視圖的概念、原理、創(chuàng)建、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • MYSQL 淺談MyISAM 存儲引擎

    MYSQL 淺談MyISAM 存儲引擎

    mysql中用的最多存儲引擎就是innodb和myisam。做為Mysql的默認(rèn)存儲引擎,myisam值得我們學(xué)習(xí)一下,以下是我對《高性能MYSQL》書中提到的myisam的理解,請大家多多指教
    2012-04-04
  • MySQL 實(shí)現(xiàn)雙向復(fù)制的方法指南

    MySQL 實(shí)現(xiàn)雙向復(fù)制的方法指南

    這篇文章主要介紹了MySQL 實(shí)現(xiàn)雙向復(fù)制的方法指南,本文包括:主機(jī)配置,從機(jī)配置,建立主-從復(fù)制,建立雙向復(fù)制,需要的朋友可以參考下
    2015-03-03
  • Mysql誤刪數(shù)據(jù)解決方案及kill語句原理

    Mysql誤刪數(shù)據(jù)解決方案及kill語句原理

    這篇文章主要介紹了Mysql誤刪數(shù)據(jù)解決方案及kill語句原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MySQL給新建用戶并賦予權(quán)限最簡單的方法

    MySQL給新建用戶并賦予權(quán)限最簡單的方法

    在本篇文章里小編給大家整理的是一篇關(guān)于MySQL給新建用戶并賦予權(quán)限最簡單的方法,需要的朋友們參考下。
    2019-11-11
  • 解析如何加快mysql編譯的速度

    解析如何加快mysql編譯的速度

    本篇文章是對如何加快mysql編譯的速度進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql實(shí)現(xiàn)批量修改字段null值改為空字符串

    mysql實(shí)現(xiàn)批量修改字段null值改為空字符串

    這篇文章主要介紹了mysql實(shí)現(xiàn)批量修改字段null值改為空字符串,具有很好的參考價(jià)值,希望對大家有所幫助。
    2022-08-08

最新評論