Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2020, 21:14   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Большая таблица в БД MySQL

Здравствуйте.

Общий объём таблицы на данный момент 768.4 МБ (MyISAM), если перевести в InnoDB - получится что-то около 1.5 ГБ.
Количество записей - 8 112 676

Из 9 столбцов - 7 строчные varchar, и два числовых int (один из которых индексный первичный ключ).
Такую структуру придумал не я, мне такая таблица досталась, и после заполнения большим объёмом данных начались проблемы.

Активные действия - чтение, изменения редкие.

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

Я потыкал разные настройки, и простой запрос с условием вешает не только таблицу, но и весь веб-сервер - параллельные запросы на сайт зависают до конца обработки запроса.

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

Что можно с этим сделать ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 18.12.2020, 12:24   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

1. структуру точнее можно?
2. есть ли внешние ключи?
3. Есть ли ключи вообще кроме primary?
4. какие запросы именно торрмозят? Пример запроса + его explain
ADSoft вне форума Ответить с цитированием
Старый 18.12.2020, 18:30   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

1. Ссылка на скриншот со структурой, по экспериментам такая структура тупит меньше всего.

2. Я не знаю где смотреть внешние ключи.

3. По картинке, получается что нету, но раньше были индексные ключи PKEY1, PKEY2 и SIDE.

4. Тормозят запросы SELECT с простыми условиями выборки. Соответственно сложные запросы тормозят ещё больше.
Ссылка на скриншот простого примера запроса, и ссылка на скриншот explain.

Только сейчас в network вкладке инструментов разработчика браузера, обратил внимание, что запрос длится 4 секунды, а phpMyAdmin показывает совершенно другую, нормальную цифру.

То есть копать нужно в другом направлении.

Что это может быть ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 18.12.2020, 22:21   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

1. Ключи потоки полям, по которым ищете, в частности code
2. Может вы выбираете всю бд? Без лимитов и пагинации?
ADSoft вне форума Ответить с цитированием
Старый 18.12.2020, 23:19   #5
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Может вы выбираете всю бд? Без лимитов и пагинации?
Это выполняет оболочка phpMyAdmin в автоматическом режиме

На вкладке SQL написал запрос, получил ответ
Оболочка пишет, что время запроса около-нулевое, а инспектор показывает 4 секунды.

И похоже это проблема с автоматическими же настройками веб-сервера (apache), которые я трогал разве что на уровне виртуальных хостов.

Либо проблема где-то между apache, PHP и MySQL, что-то типа "блокировки параллельных запросов одного клиента". Да, с другого устройства при этом ничего не висит.

Что это может быть ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 19.12.2020, 09:28   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Вы работаете в phpnyadmib или все же вам нужно из скрипта вашего?

Ещё раз - сделайте ключами все поля, по которым идут условия. И посмотрите потом и.сам запрос и его експлайн

А в своих скриптах обязательно используйте лимиты
ADSoft вне форума Ответить с цитированием
Старый 19.12.2020, 17:23   #7
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
в своих скриптах обязательно используйте лимиты
Свои скрипты по работе с БД я пишу крайне редко, и ещё реже нужно грузить большие объёмы данных. Пару раз приходилось, и там использовать лимиты - само собой разумеющееся.
Цитата:
Сообщение от ADSoft Посмотреть сообщение
Вы работаете в phpnyadmib или все же вам нужно из скрипта вашего?
Глючит в phpMyAdmin, зависание происходит на уровне веб-сервера или PHP, а не БД.
Что с этим делать - решительно не понятно. Не сильно важно где именно мне нужно, глючит везде.
Цитата:
Сообщение от ADSoft Посмотреть сообщение
сделайте ключами все поля, по которым идут условия. И посмотрите потом и.сам запрос и его експлайн
Ок это сделаю позже.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одна большая таблица или много маленьких Андрей Цапко SQL, базы данных 10 11.02.2018 10:12
Не заполняется таблица MYSQL Sergey_gorobets PHP 5 08.07.2015 13:46
Большая сводная таблица! Hafling Microsoft Office Access 0 19.03.2014 18:03
Не создаётся таблица mysql kennyi666 PHP 4 05.07.2012 17:33
Одна большая таблица или много маленьких. SlvUn Microsoft Office Access 2 20.11.2009 20:15