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

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

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

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

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

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

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

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


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

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


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


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


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


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