찾다

 >  Q&A  >  본문

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

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

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

高洛峰高洛峰2788일 전653

모든 응답(1)나는 대답할 것이다

  • 大家讲道理

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

    可以使用OPTIMIZE정정期优化表,每个星期或者每个月一次,具体可以参考下面链接
    http://dev.mysql.com/doc/refm...

    摘自官网的描述

    테이블 유형에 따라 다음과 같은 경우 OPTIMIZE TABLE을 사용하세요.

    innodb_file_per_table 옵션을 활성화하여
    생성되었기 때문에 자체 .ibd 파일이 있는
    InnoDB 테이블에서 상당한 삽입, 업데이트 또는 삭제 작업을 수행한 후. 테이블과 인덱스가
    재구성되고, 운영 체제
    에서 사용할 수 있도록 디스크 공간을 회수할 수 있습니다.

    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
  • 취소회신하다