搜尋

首頁  >  問答  >  主體

mysql索引 - MySQL:索引是否需要整理维护?

每月定期需要对数据进行大量的删除操作,想请教这样操作后对索引是否有影响,是否需要在删除操作完成后对索引进行更新之类的操作

如果需要的话这方面的内容搜索哪些关键字呢?

高洛峰高洛峰2788 天前655

全部回覆(1)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 16:14:39

    可以使用OPTIMIZE定期優化表,每週或每月一次,具體可以參考下面連結
    http://dev.mysql.com/doc/refm...

    摘自官網的描述

    在這些情況下使用 OPTIMIZE TABLE,取決於表格的類型:

    對具有自己的 .ibd 檔案的 InnoDB 表執行大量插入、更新或刪除操作後,因為該表是在啟用了 innodb_file_per_table 選項的情況下建立的。表和索引
    重新組織,並且可以回收磁碟空間以供作業系統
    系統使用。

    對 InnoDB 表中 FULLTEXT 索引一部分的資料列進行大量插入、更新或刪除操作後。首先設定

    配置選項innodb_optimize_fulltext_only=1。為了將

    索引維護週期保持在合理的時間,請設定
    innodb_ft_num_word_optimize選項來指定要更新搜尋索引中的單字數
    ,並執行一系列OPTIMIZE TABLE語句
    直到搜尋索引完全更新。

    刪除 MyISAM 或 ARCHIVE 表的大部分內容,或對具有可變長度行
    的 MyISAM 或 ARCHIVE 表(具有 VARCHAR、VARBINARY、BLOB 或 TEXT 列的表)進行

    許多更改後。刪除的行保存在鍊錶中,後續的 INSERT 操作重複使用舊的行位置。您可以使用 OPTIMIZE TABLE 來回收

    未使用的空間並對資料檔案進行碎片整理。在表格進行大量更改
    後,此語句還可以提高使用該表的語句
    的效能,有時甚至會顯著提高。

    回覆
    0
  • 取消回覆