LEOnidUKG

LEOnidUKG
Рейтинг
1788
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
вот везде пишут что есть база на 5000 каталогов есть на 10000 белых, серых и т.д.

За всех не нужно говорить.

только вдумайтесь

Давно уже все вдумались и знают, что нужно ручное размещение и такой же отбор каталогов.

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

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

Напиши об этом вконтакт-у в их тех.поддержку.

Не не, новая таблица не нужна. Мой код вполне шустро работает, я его ещё подкрутил, убрал 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

:)

вот в нем вы откуда-то берете цифирьки для LIMIT?

Он для ВСЕХ записей, как я ID то найду всех в cat=2? ещё и нужные ID возьму?

Для этого уже netwind предложил вложенный запрос, он выполняется отлично. Прочитайте верхний пост мой :)

То с этим кодом проблема решена и тема топика исчерпана ?

Всё упёрлось сейчас в нагрузку на диск. С сервера убираются некоторые проекты на другой. Код прилично помогает, но просто диску пока не до мускуля и поэтому идут тормоза.

Но в любом случаи это быстрее, чем LIMIT, ещё надо проверить вложенный запросы, когда всё уляжется.

Dweep:
ТС, ответьте, плиз, на пару вопросов:

1. Сколько времени у Вас выполняется такой запрос:
SELECT `id` FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30

2. Как часто в этой таблице изменяются данные ?


Кстати яндекс и гугл не выводит более 1000 результатов в выдаче, вероятно потому что не смогли придумать как эффективно делать подобные запросы.

Я уже всё писал:

1. /ru/forum/comment/10081908

2. 1 раз в час

у нас уже есть острое ощущение, что у Вас диски на сервере накрываются или типа того.

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

Поэтому придётся вырубать в слепую всякие форму и т.п.

Fearful:
Конечно уважаемый, продолжайте и дальше морочить людям голову.
Ни структуры таблицы не показали, ни explain запроса из первого поста.
И правильно, зачем, пусть телепаты напрягаются.

Так легче стало на душе?

Отображает строки 6150 - 6179 ( 6,247 всего, запрос занял 6.7226 сек.)

SELECT *

FROM `cms_freepages`

WHERE `cat` =4

LIMIT 6150 , 30

EXPLAIN:

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE cms_freepages ref cat cat 4 const 6892

netwind:
Посмотрели бы уже план. Скорее всего 11 категория самая большая и он решил перебрать всю таблицу.

Да это глупости какие-то. Он самая маленькая.

Я уже убрал сортировку:

SELECT SQL_NO_CACHE id FROM `cms_freepages` WHERE cat =11

Отображает строки 0 - 29 ( 3,228 всего, запрос занял 0.0009 сек.)

EXPLAIN

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE cms_freepages ref cat cat 4 const 3517

т.е. как бы всё очень быстро через phpmyadmin и все довольны.

Может тут что-то не так my.cnf на машине 2 ГБ памяти и 4-ре ядра.

[mysqld]

max_connections=150

safe-show-database

skip-locking

skip-innodb

skip-networking

safe-show-database

skip-name-resolve

skip-external-locking

query_cache_limit=2M

query_cache_size=128M

query_cache_type=1

max_user_connections=150

interactive_timeout=10

wait_timeout=20

connect_timeout=20

thread_cache_size=128

join_buffer_size=2M

max_connect_errors=9999999

max_allowed_packet=1M

table_cache=1024

tmp_table_size=128M

max_join_size=1000000

record_buffer=1M

sort_buffer_size=2M ## 1MB for every 1GB of RAM

read_buffer_size=2M ## 1MB for every 1GB of RAM

read_rnd_buffer_size=2M ## 1MB for every 1GB of RAM

thread_concurrency=12 ## Number of CPUs x 2

myisam_sort_buffer_size=64M

max_heap_table_size=65M

join_buffer_size=2M

key_buffer_size=300M

table_open_cache = 256

table_cache=300

table_definition_cache=300

log_queries_not_using_indexes

#log_slave_updates

log_long_format

[isamchk]

key_buffer=128M

sort_buffer=128M

read_buffer=32M

write_buffer=32M

[myisamchk]

key_buffer=128M

sort_buffer=128M

read_buffer=32M

write_buffer=32M

Всего: 31634