Проблема производительности выполнения запросов MYSQL
ПРИВЕТ,
Я с помощью C#, сервер БД MySQL.
У меня есть 3 таблицы в БД, 1-я таблица имеет 1,5 лакх записей, 2-я таблица имеет 1,75 лакх записей и 3-я таблица имеет 21 лакх записей. мне нужен вывод с использованием выше 3 таблиц, поэтому я присоединился к выше 3 таблицам с помощью внутреннего соединения и получил вывод с записями 1,5 лакха, но для этого требуется 8 часов времени.
Я использовал первичные ключи при соединении таблиц, может ли кто-нибудь предложить мне увеличить производительность.
Спасибо!
Что я уже пробовал:
выберите Col1, col2, ... coln из таблицы 1
Соедините таблицу 2 с таблицей 1.ИД = таблица2.Идентификатор
Присоединяйтесь таблица3 таблицы table1.ИД = таблица3.Идентификатор
Richard MacCutchan
Что вы планируете делать с 1,5 лакхами (150 000) записей? Как вы думаете, какой-нибудь пользователь будет заинтересован в том, чтобы прочитать их все? Используйте правильные критерии выбора и пейджинг, чтобы сделать ваше приложение пригодным для использования.
sampath1750
Нам нужно отобразить результирующий набор, поэтому мы сохранили этот результирующий набор в другой таблице и отобразили результирующий набор.
Richard MacCutchan
Никому не нужно показывать столько записей за один раз. Вам нужно серьезно взглянуть на свой дизайн.
0x01AA
Где это было упомянуто, это должно быть показано? Во всяком случае, такой случай (выберите 150k записей) может легко произойти во время некоторого интеллектуального анализа данных...
David_Wimbley
ОП ясно говорит:" нам нужно отобразить результирующий набор " в комментарии, на который ответил Ричард.
Richard MacCutchan
Читать вопрос.
0x01AA
Я не думаю, что 150 тысяч записей будут проблемой (до тех пор, пока вы не представите их пользователю). То, что я узнал с MSSQL, ограничение внешнего ключа не определяет индекс автоматически (например, interbase делает это автоматически). Поэтому сначала проверьте, индексируются ли внешние ограничения ;)