Так легче стало на душе?
Отображает строки 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
Да это глупости какие-то. Он самая маленькая.
Я уже убрал сортировку:
SELECT SQL_NO_CACHE id FROM `cms_freepages` WHERE cat =11
Отображает строки 0 - 29 ( 3,228 всего, запрос занял 0.0009 сек.)
EXPLAIN
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
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
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]
Вот это?
Можно расписать, что такое "id>" и откуда я его возьму? :)---------- Добавлено 24.02.2012 в 13:28 ----------Чёт я не врубаюсь смотрю запрос выполняется 27 секунд:
Query 27 Sorting result SELECT id FROM `cms_freepages` WHERE cat=11 ORDER BY ID
Через phpmyadmin c SQL_NO_CACHE 0,005 секунд
Я что-то не понимаю в этой жизни? :)
netwind,iopiop, да это опять доли секунды. Тут главное быстро собрать все ID категории и всё.
Fearful, конечно профессор, шли бы только мимо :)
ввести такое?
Ну мы тем самым лишь уменьшаем сам массив, это опять же доли секунды.---------- Добавлено 24.02.2012 в 03:33 ----------
Да конечно.
1.Из мануала, Замечание:
Однако, плюсы использования mysql_unbuffered_query() имеют свою цену: вы не можете использовать функции mysql_num_rows() и mysql_data_seek() с результатом запроса, возвращённым этой функцией, пока не будут получены все ряды. Кроме того, вы должны будете обработать все ряды запроса до отправки нового запроса, используя тот же link_identifier.
2. Если мы даже применим mysql_data_seek, то нам НУЖНО количество ВСЕХ записей для составления листинга.
Вот тут решение проблемы: /ru/forum/comment/10080098
Да оно уже сейчас выполняется доли секунды. Опять же говорю сейчас проблема лишь как быстро считать все ID из категории 1 раз и всё.
Была бы статичная Таблица, то можно было бы сделать. А так то данные меняются автоматически.
Это уже мелочь не важная. Тут самый прикол как быстро получить список всех ID в нужной категории.
Про какую именно сортировку вы имеете ввиду? То что она в PHP проходит?
Индекс базы 15КБ, поэтому дамб весь помещается.
Не понимаю суть данной функции и чем она быстрее. Учитывая, что код идёт сверху вниз, в любом случаи пока не будет обработан и забит массив, код дальше не пойдёт выполняться. В чём смысл?---------- Добавлено 24.02.2012 в 02:27 ----------
Ну что я могу поделать? Вас поздравляю, у меня всё по другому и всё работает медленее. Возможно зависит от настроек или же серверной машины.