Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение работы с тяжелой БД / 6 сообщений из 6, страница 1 из 1
26.11.2015, 22:57:44
    #39114466
Staspost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
Добрый день!
Имеется MySQL, работающая на DENWER на локальной машине 64bit, 8Гб оперативки. База заполняется текстовыми записями большого размера (по несколько страниц). В настоящее время база имеет 113 тыс. записей (в итоге должно быть 8 млн), размер файла базы уже составляет 4,3 Гб. Сильно упала скорость записи. При входе через PHPMyAdmin страницы таблицы даже перелистываются (SELECT) по 1,5 минуты... Как правильнее исправить данную ситуацию? DENWER пихает все имеющиеся на localhoste базы в один файл ibdata1, может быть, можно настроить создание дополнительных фалов с базами?
...
Рейтинг: 0 / 0
26.11.2015, 23:46:45
    #39114493
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
Ну судя по тому, что у вас файл называется ibdata1 таблица у вас на движке InnoDB.
А эта зараза поднимает в buffer pool вообще всё что читает, включая ваши огромные TEXT поля. В сухом остатке - постоянное дрочево диска.

PHPMyAdmin тормозит именно поэтому, т.к. там запрос к таблице по-умолчанию идёт SELECT * и он вынужден переваривать при каждом перелистывании очередные несколько сотен мегабайт данных. Попробуйте сами не просто открыть таблицу, а написать селект без вашего большого поля - этот селект должен листаться без проблем.

Для начала стоит однозначно посмотреть настройки InnoDB (innodb_buffer_pool_size) по умолчанию он имеет совсем какие-то смешные настройки (8 Мб что-ли). Попробуйте выставить его хотя бы пару гигов, а лучше пять (это больше размера всей вашей базы, при оперативе 8 Гб - должно прокатить).

Потом стоит посмотреть на запросы, которые идут от приложения к этой таблице.
Везде где возможно исключить TEXT поле из запросов (то есть избавиться от запросов вида SELECT * FROM table).

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

Как крайний вариант - возможно стоит рассмотреть вообще вынос хранения больших документов в файловую систему, а в БД хранить только ссылки. Тут конечно возникает вопрос индексации и необходимости поиска по этим документам.

А вообще, конечно, без более подробного знания о специфике приложения - всё это похоже на "лечение по фотогграфии" :)
...
Рейтинг: 0 / 0
27.11.2015, 00:15:25
    #39114508
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
Staspostможет быть, можно настроить создание дополнительных фалов с базами? innodb_file_per_table включена?
...
Рейтинг: 0 / 0
27.11.2015, 00:47:20
    #39114518
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
miksoftStaspostможет быть, можно настроить создание дополнительных фалов с базами? innodb_file_per_table включена?

А на кой она нужна ему ? Она и вообще-то не нужна.
...
Рейтинг: 0 / 0
27.11.2015, 00:51:27
    #39114520
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
anvanoНу судя по тому, что у вас файл называется ibdata1 таблица у вас на движке InnoDB.
А эта зараза поднимает в buffer pool вообще всё что читает, включая ваши огромные TEXT поля.


А куда же ей ещё-то поднимать данные, как ни в бафер пул ?

anvanoВ сухом остатке - постоянное дрочево диска.


СУБД вообще всегда -- дрочево диска. Такой класс систем.


anvanoPHPMyAdmin тормозит именно поэтому, т.к. там запрос к таблице по-умолчанию идёт SELECT * и он вынужден переваривать при каждом перелистывании очередные несколько сотен мегабайт данных. Попробуйте сами не просто открыть таблицу, а написать селект без вашего большого поля - этот селект должен листаться без проблем.


А вообще, что за цель такая -- "листание без проблем". Ну, даже, допустим, есть у вас проблемы с листанием, что с того плохого ?
...
Рейтинг: 0 / 0
27.11.2015, 12:51:16
    #39114827
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение работы с тяжелой БД
авторКак правильнее исправить данную ситуацию? DENWER пихает все имеющиеся на localhoste базы в один файл ibdata1, может быть, можно настроить создание дополнительных фалов с базами?
включить посмотреть slow log посмотреть expalin
включить innodb_file_per_table
настроить буфер пул побольше. для ускорения insert настроить innodb_flush_log_at_trx_commit = 2
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение работы с тяжелой БД / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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