Как оптимизировать запрос к MySQL ( 200 000 записей)

Фанат

oncle terrible
Команда форума
alexhemp
ты не слышал о типе поля char?

-~{}~ 24.02.06 16:58:

general
поисковики - понятно. это отдельный вопрос.

а вот про людей - это уже интересно. сколько времени эти люди затрачивают на просмотр одной страницы в среднем?
 

alexhemp

Новичок
Фанат

Я то слышал.
Только вот имена, отчества и даже фамилии имеют тенденции повторятся. А в справочнике уже пофиг, char или varchar, там выборка по индексу (первичному ключу).
Другой вопрос - сколько записей будет на страницу базы.
На моей практике - чем меньше размер одной записи - тем быстрее выборка.
 

Фанат

oncle terrible
Команда форума
что-то ты непонятное пишешь.
тописал про фиксированность размера , а теперь - про сам размер.
 

alexhemp

Новичок
Фанат

Мне с тобой спорить недосуг.

Моя рекомендация - сделать полную нормализацию базы. Это приведет к тому что основная таблица будет содержать только ссылки на справочники.

Размер записи уменьшиться, на одну страницу файла БД (не вывода) будет попадать больше записей, что уменьшит количество операций чтения с диска при сканировании данной таблицы.

Извини, Фанат, если пишу не понятно для тебя. Но может автору топика будет понятно?
 

Abrams

Новичок
Создайте справочники имен, отчеств и фамилий. В основной базе заведите ссылки на них. И будет Вам счастье.

Хороший Вам провайдер попался. Мог бы и просто выгнать за подобный стиль написания.
 

Лысый

Новичок
ну нормализация конечно должна помочь
работать с записями ключей бустрее чем с записями-строками, НО
ему же всё равно придётся делать JOIN с таблицами справочниками, там то тормоза не возникнут?
 

alexhemp

Новичок
Все джойны будут использовать индексы, должно быть очень быстро.
 

general

Новичок
Непонятно. Хостер ругается и на такой запрос:

SELECT id, name, surname FROM table ORDER BY id ASC LIMIT 163126, 80

ID - это первичный ключ, mediumint(9).

В чем дело??? Неужели 200 тыс записей - это много? Для простенькой сортировки по ключу? Хостер известный. Из 1-ой десятки. Последнее время часто присылает рекламу про VDS.
 

Фанат

oncle terrible
Команда форума
сортировка тут не при чём
об этом тебе уже сказали неделю назад
 

general

Новичок
На локальном компьютере:

SELECT id, name, surname FROM table ORDER BY id ASC LIMIT 163126, 80
= 0,2 сек

SELECT id, name, surname FROM table LIMIT 163126, 80
= 0,02 сек
 

PartizaneN

I speak PHP
Автор оригинала: general
На локальном компьютере:

SELECT id, name, surname FROM table ORDER BY id ASC LIMIT 163126, 80
= 0,2 сек

SELECT id, name, surname FROM table LIMIT 163126, 80
= 0,02 сек
Долговата и та и другая цифра...

Прямо сейчас посмотрел, правда на выделенном серваке - запрос с джойнами 3-х таблиц, ордером и лимитом, похожим на твой - 2 из них в районе 8 млн записей... 0.007 секунд...
 
Сверху