mysqlcheck и optimize таблиц InnoDB

    Только что заметил, что если делать
    mysqlcheck -o --repair db_name
    и ваши таблицы в InnoDB, то не только не происходит repair (что и не должно, так как движок не поддерживает эту функцию), но и optimize не срабатывает.
    То есть, база остается без optimize и вы этого не замечаете!

    Если делать так:
    mysqlcheck -o db_name
    , то происходит пересоздание (recreate) каждой таблицы.

    Из-за этого у меня optimize не выполнялся скриптом по крону уже полгода, с момента перехода с MyISAM на InnoDB.

    PS: В моем случае используется innodb_file_per_table.

    Комментарии 5

      +1
      Знаете, наверно этому место всё же в Q&A, а не в блоге.
      Там бы и обсудили способы, как оптимизировать таблицы в InnoDB — способы есть.
        0
        Ну я что-то подумал, что там уведомления о комментах не работают. Неудобно обсуждать.
        А теперь уже нет прав убрать пост в черновики.

        А разве существуют еще какие-то способы оптимизации файла InnoDB?
          +1
          Да, есть трюки позволяющие привести InnoDB таблицы в порядок. Я посоветую обратиться в гугл и к mysqlperformanceblog.com, поскольку на практике я этими вещами не занимался.
            0
            Ну так ведь они и так приходят в порядок после recreate — пустое место «разуплотняется» и происходит дефрагментация данных внутри файлов таблиц.
        +1
        Пошлите баг сюда: bugs.mysql.com

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое