Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Постраничная навигация и нагрузка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dropoff
Отправлено: 07 Октября, 2011 - 23:42:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Доброго времени суток!

Ребята, нужен совет.
Делаю небольшой сайт, но с кучей информации.
На сайте несколько разделов, а в каждом разделе до 300-400к (тысяч) записей. Что-то типа каталога.

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

По факту - нужно выводить общее число записей в категории и любую постраничную структуру.

Может есть у кого в закромах хорошее решение именно под большие объемы данных или просто совет какой, как быть?
 
 Top
OrmaJever Модератор
Отправлено: 08 Октября, 2011 - 00:19:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




я не понимаю как постраничная навигация может грузить базу? она делается через limit который после взятия n-ого количества записей заканчивает поиски. Тоесть если написано

то хоть в бд 1к хоть 100к записей время выбора должно быть примерно одинаковым, поскольку после выбора 10 значений работа с базой заканчивается.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dropoff
Отправлено: 08 Октября, 2011 - 00:26:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Хм.
нужно же посчитать все записи, потом разделить на какое-то количество которое будет на странице, а потом выводить уже.
нужно же вывести хоть какое-то меню 1 2 3 4 5 ... 10 11 12... чтобы перепрыгивать по страницам.

Или я чего-то не понимаю?
 
 Top
OrmaJever Модератор
Отправлено: 08 Октября, 2011 - 00:40:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Да, но если такое большое количество то можно же и обмануть систему?
Например не писать номер страницы, а просто зделать стрелки впёред и назад.
Или вот например несчитать общееколичество записей а например только для 10 страниц.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(*) FROM tbl LIMIT 101

както примерно так. Тоесть берём первые 101 записей и если их нащитает 101 значит 10 страниц по 10 записей есть. Если меньше то делить и выводить количество страниц и тд.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dropoff
Отправлено: 08 Октября, 2011 - 09:21:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




OrmaJever, спасибо!
Как говорится - Все гениальное - просто!
 
 Top
illy
Отправлено: 08 Октября, 2011 - 09:56:18
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




dropoff пишет:
Как говорится - Все гениальное - просто!

Верно подметил Хорошо
А ещё можно просто хранить где нибудь в файле количество товаров в каталогах чтобы постоянно не подсчитывать.


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB