mysql+150000 записей+размер 500МБ. Вешается :)

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#71

Не не, новая таблица не нужна. Мой код вполне шустро работает, я его ещё подкрутил, убрал DESC ID и arsort добавил в PHP, чтобы мускуль вообще не парилась.

---------- Добавлено 24.02.2012 в 21:39 ----------

AlienZzzz:
explain plan SELECT * FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30 в студию

С ораклом не путаете? explain plan?

А так уже писал в 3-й раз: /ru/forum/comment/10081908

:)

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
I
На сайте с 23.12.2010
Offline
25
#72
LEOnidUKG:
Он для ВСЕХ записей, как я ID то найду всех в cat=2? ещё и нужные ID возьму?
Для этого уже netwind предложил вложенный запрос, он выполняется отлично. Прочитайте верхний пост мой :)

возможно я не понимаю что вам нужно. я думаю, что вам нужно выдавать постранично 25 записей на страницу для определенной категории. исходя из этого

1) первая страница для категории 2 будет выдаваться по запросу where cat = 2 and id > 0 limit 25

2) в пхп, куда будет этот запрос выдваться, определяете максимальный id ($maxid)

3) следующая страница будет выдаваться по запросу where cat = 2 and id > $maxid limit 25

4) гоу ту 2)

или вам нужно уметь сразу прыгнуть на определенную страницу (скажем, на девятую)?

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#73
или вам нужно уметь сразу прыгнуть на определенную страницу (скажем, на девятую)?

Ну конечно же, надо :) То что вы предлагает, это какой-то гемор не функциональный :)

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#74

С сервером всё было поправлено и хочу сделать резюме.

Всё описанное моё ИМХО и вы можете меня рвать и метать, не верить и т.п. :)

Оба варианта отлично работают и имеют свои оттенки:

Вариант 1 от netwind:

select * from `cms_freepages`, (SELECT id FROM `cms_freepages` WHERE cat=2 ORDER by ID desc LIMIT 37710,30) sub where `cms_freepages`.id=sub.id ;

* Очень быстро работает на первых страницах т.к. LIMIT + очень мало данных для его использования

* Медленнее уже на самых дальних, но это не критично

Варивнт 2 от меня: /ru/forum/comment/10080098

* Медленнее в самом начале т.к. идёт выборка всех ID

* Очень быстрый при вызове любой страницы, хоть 100500

Поэтому решать Вам, что использовать. Я выбрал свой вариант т.к. у меня страницы меняются 1 раз в час и по ним любят бегать боты. Кэша на 1 час для ботов достаточно, чтобы пробежать быстро-быстро по всем страницам.

sirota77
На сайте с 08.09.2008
Offline
161
#75

Так дело было в сервере ?

---------- Добавлено 27.02.2012 в 23:12 ----------

Похоже вариант с LIMIT не так уж и плох.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#76
sirota77:
Так дело было в сервере ?

---------- Добавлено 27.02.2012 в 23:12 ----------

Похоже вариант с LIMIT не так уж и плох.

И с ним тоже. Но варианты оптимальные я описал выше :)

I
На сайте с 23.12.2010
Offline
25
#77
LEOnidUKG:

Варивнт 2 от меня: /ru/forum/comment/10080098

* Медленнее в самом начале т.к. идёт выборка всех ID

медленно даже с составным индексом на (cat, id) ?

даж странно как-то...

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#78
iopiop:
медленно даже с составным индексом на (cat, id) ?
даж странно как-то...

Относительно медленно конечно же, я не говорю о 15 секунда и т.п. :)

F
На сайте с 24.04.2009
Offline
45
#79
LEOnidUKG:
Но варианты оптимальные я описал выше :)

Оптимальный вариант, это делать избыточность при добавлении данных.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#80
Fearful:
Оптимальный вариант, это делать избыточность при добавлении данных.

Ого, это такой тренд нынче. Зайти кинуть умную фразу, чтобы все охали и ахали. Избыточность, конечно же, уже побежал переписывать структуру и CMS для избыточности, которая никому нафиг не нужна. Аха?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий