Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / частичное InnoDB_file_per_table? / 8 сообщений из 8, страница 1 из 1
17.06.2014, 15:59:08
    #38671968
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
MySQL 5.161, часть таблиц MyISAM, основная часть InnoDB. InnoDB_file_per_table=false.
В виду специфики софта основные (и при этом самые большие) таблицы очень сильно фрагментированы. А в виду их достаточно больших размеров (50-150гигов каждая, включая индексы), количества индексов (до 8 штук на каждую) и круглосуточной работы БД регулярный OPTIMIZE всех таблиц сделать проблематично. Фрагментация выливается в общую загруженность дисковой полки с БД и другие беды.
Насколько корректна идея включить InnoDB_file_per_table, перестроить таблицы, где проводится больше всего циклов удаления и вставки (теперь они будут каждая в своем файле), а таблицы-справочники и таблицы MyISAM оставить в основном табличном пространстве?
Не будет ли снижение быстродействия или еще какой беды от такой частичной разборки?
И в каком варианте тогда оставлять InnoDB_file_per_table, true или false, после окончания перевода таблиц в отдельные файлы? Есть ли зависимость быстродействия от текущего значения этого параметра?
...
Рейтинг: 0 / 0
17.06.2014, 16:41:08
    #38672025
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
Aliced,

насколько понял я, эта настройка для движка иннодб вцелом.. либо все хором, либо по одной.

то что тебе надо для твоей задачи, так это понять, что нету никакой фрагментации файла, ибо файл иннодб не уменьшаеться...

задай со старта его с запасом, выключи мускл, дефрагментируй, и будет тебе счастье (если будет) - ввиде цельного файла *.ибд

а что касаеться самих записей, то таки да - тут оптимайз тейбл, но не думаю что он уж очень чтото даёт.
дело в том, насколько понимаю я, выгоду получиться в каких случаях.
винчестер как мы знаем, разбит на кластеры, и работа идёт по кластерно. обычно размер кластера 4Кб, тоесть существенно больше чем длина записи(поля блоб, текст, и подобная бабуйня храняться отдельно, вконце области данных таблицы...аля как будто таблица справочник)

итого получаем, если частые запросы типо выбрать запись с ПервичнымКлючом
ПК=1000 ИЛИ ПК=2000 ИЛИ ПК = 10000
то эта оптимизация тебе ничего не даст... один чорт надо будет трижды щитать с винчестера чтото.
а вот если у тебя частые чтения(обновления) для последовательных записей по ПК(имено так они располагаються после оптимизации)
то поможет.
мускл как бы не дурак, и если он увидит что тебе надо записи с ПК 1,2,3,4 и все они попадают в один кластер, он не будет 4 раза читать одно и тоже место с шдд(даже если эти четыре записи нужны одновременно но 4 разным запросам), и вырезать нужную часть, - он один раз считает, и для каждого из 4 запросов вырежет из этой цепочки нужный кусок.

--вцелом, польза при частых выборках списка записей, насколько не скажу...у меня таблицы на 300Гигов, и я не думал даже оптимизацию им делать

возможно будет полезно портиционирование данных в таблицах.
всё от специфики задачи зависит, так что давай...делись. Раскажи свою душещипательную историю :)

ЗЫ
вопрос автору - а как ты получил эти таблицы??? у меня например проблема - как быстро сгенерировать таблицу подчинённую с индексами и внешними ключами на милиард записей(300 гигов получился файл, без ключей внешних).

ибо если ключи есть - медлено, ибо перестройка индекса постоянная, если ключи потом добавлять - мускл файл пересоздаёт и очень медленно - счас за сутки гдето 3-4гига обрабатываеться(рост нового файла что он создаёт)
...
Рейтинг: 0 / 0
17.06.2014, 16:55:07
    #38672054
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
автора таблицы-справочники и таблицы MyISAM оставить в основном табличном пространстве
вы сами-то то поняли что сказали?
...
Рейтинг: 0 / 0
17.06.2014, 17:33:20
    #38672129
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
ScareCrowвы сами-то то поняли что сказали?

Увы, при совершенном понимании предмета темы данной темы не было бы.
И что я крамольного сказала?
...
Рейтинг: 0 / 0
17.06.2014, 17:55:43
    #38672167
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
AlicedScareCrowвы сами-то то поняли что сказали?

Увы, при совершенном понимании предмета темы данной темы не было бы.
И что я крамольного сказала?

автора таблицы-справочники и таблицы MyISAM


увас типо счас таблицы иннодб справочники и майисам в одном файле?


таблицы майисам храняться в отедльных файлах априори.
...
Рейтинг: 0 / 0
17.06.2014, 18:07:44
    #38672190
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
alex564657498765453таблицы майисам храняться в отедльных файлах априори.
Каюсь... Почему-то всегда думалось, что они в ибдата1...
...
Рейтинг: 0 / 0
17.06.2014, 18:19:40
    #38672200
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
alex564657498765453,

>>у меня например проблема - как быстро сгенерировать таблицу подчинённую с индексами и внешними ключами на милиард записей(300 гигов получился файл, без ключей внешних).
ибо если ключи есть - медлено, ибо перестройка индекса постоянная, если ключи потом добавлять - мускл файл пересоздаёт и очень медленно - счас за сутки гдето 3-4гига обрабатываеться(рост нового файла что он создаёт)

Была и у меня такая проблема :)
Мою версию Мускула ускорить удалось только капитальным уменьшением кол-ва данных. Были опробованы варианты: создавать и заливать таблицу отдельно, потом строить индексы, заливать и строить одновременно, строить индексы не все сразу, а по одному, делать все вышеперечисленное на движке MyISAM а потом преобразовывать в InnoDB. Infile-outfile тоже пробовала. Как ни странно звучит, время на любой из вариантов затрачивалось примерно одинаковое :) Кстати, еще один рабочий вариант-уменьшить кол-во индексов. Построение каждого следующего индекса занимает раза в полтора больше времени (у меня даже формула, полученная опытным путем, где-то валялась). Percona с этой задачей хорошо справляется, но у меня не Percona :(

Теперь к моим баранам :)
>>насколько понял я, эта настройка для движка иннодб вцелом.. либо все хором, либо по одной.
ну почему? Какие таблицы перестроила, такие и в отдельные файлы пошли. Остальные остались.

>>задай со старта его с запасом, выключи мускл, дефрагментируй, и будет тебе счастье (если будет) - ввиде цельного файла *.ибд
не могу :( Процесс достаточно долгий, за одну ночь (даже если я ее выбью) не успею.

>>возможно будет полезно портиционирование данных в таблицах
проходили. По датам софт не поддерживает, дублирует данные. Другое распределение невостребовано. Да и таблицы сечас не такие большие, как раньше были.

>> вопрос автору - а как ты получил эти таблицы???
есть ряд таблиц, куда круглосуточно попадают продажи с касс. Из этих таблиц ежедневно удаляются данные старше N-месяцев. Удаление идет по каждой кассе конкретно, то есть из одной таблицы последовательно запускается удаление данных нескольких десятков, если не сотен касс. Одновременно с удалением продолжают поступать свежие данные с касс. Размер ежедневно удаляемых данных не равен ежедневно добавляемым.

>>то эта оптимизация тебе ничего не даст
optimize table немного уменьшает время запросов к данной таблице.
InnoDB_file_per_table- ожидаю, что уменьшится фрагментация. То есть в пределах одногь файла=таблицы фрагментация останется, если с ней не работать, а вот куски разных таблиц в ибдата1 уже перемешиваться не будут, и хотя бы индексы можно будет читать в один прием.
...
Рейтинг: 0 / 0
17.06.2014, 18:31:55
    #38672211
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частичное InnoDB_file_per_table?
авторесли ключи потом добавлять - мускл файл пересоздаёт

mysql 5.6 спасет отца русской демократии.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / частичное InnoDB_file_per_table? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]