Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Параметры поиска
 
 автор: Enter   (23.12.2013 в 18:44)   письмо автору
 
 

Всем привет. У меня такая проблема: на сайте есть поиск по параметрам, например, по цвету, весу, размеру и т.д. Всего пораметров поиска более двадцати. Как мне передать то, что выбрал посетитель на другие страницу (чтобы результаты поиска сохранились на форме) без учета GET параметров и, возможно, сессий? Просто хочу, чтобы у меня был короткий ЮРЛ, а не километровый. Сессии тоже не хочу, так как мне важно, чтобы пользователь мог передать ссылку другому человеку без потери результатов своего поиска.

Например, можно сделать так: при поиске записывать его результаты в файл, а имя файла передавать гетом. Но тогда будет много файлов, что тоже не очень. Мемкэшд - не знаю.. как-то тоже не опционально. Может, кто подскажет, как реализовать такое?

  Ответить  
 
 автор: Valick   (23.12.2013 в 21:05)   письмо автору
 
   для: Enter   (23.12.2013 в 18:44)
 

сессия тут и не подойдет
просто сохраняйте результат в БД, и передавайте id строки

  Ответить  
 
 автор: Enter   (24.12.2013 в 10:13)   письмо автору
 
   для: Valick   (23.12.2013 в 21:05)
 

слишком много строк будет, хотя если только монгодб всякие.. реляционные слишком не вариант.

  Ответить  
 
 автор: Valick   (24.12.2013 в 10:17)   письмо автору
 
   для: Enter   (24.12.2013 в 10:13)
 

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

  Ответить  
 
 автор: Enter   (24.12.2013 в 11:35)   письмо автору
 
   для: Valick   (24.12.2013 в 10:17)
 

строк, а не столбцов.
строка одна на каждый поиск. А таких поисков может быть 10000 в день. Каждый раз делать запрос к БД - это не рентабельно. Вот смотрите: зашел Вася на сайт, поискал. Это инсерт. Потом еще раз поискал. Это апдейт. Потом еще поискал Х раз. Это еще Х раз апдейт. Нашел что-то. Перешел на другую страницу. Это уже селект. На MySQL это немного нерентабельно, потому что таких Васей могут быть 10000.

  Ответить  
 
 автор: Valick   (24.12.2013 в 11:48)   письмо автору
 
   для: Enter   (24.12.2013 в 11:35)
 

вы за советом пришли или мозг потрахать?
про "каждый раз запрос к БД" - это уже оставьте кешированию на уровне MySQL
и как только Васей будет 10000 посмотрите на нагрузку БД
а пока подозреваю Васей 0
__
вообще делайте что считаете нужным, мне все равно

  Ответить  
 
 автор: Enter   (24.12.2013 в 12:12)   письмо автору
 
   для: Valick   (24.12.2013 в 11:48)
 

я за советом пришел. Но MySQL не вариант.

  Ответить  
 
 автор: psychomc   (24.12.2013 в 12:14)   письмо автору
 
   для: Enter   (24.12.2013 в 11:35)
 

может тогда перевести сайт на чистый html, чтобы всякие васи субд-шечку не обижали? или вообще лучше удалить его из интернетов и спать спокойно..

  Ответить  
 
 автор: Enter   (24.12.2013 в 12:16)   письмо автору
 
   для: psychomc   (24.12.2013 в 12:14)
 

смешно, да

  Ответить  
 
 автор: psychomc   (24.12.2013 в 12:19)   письмо автору
 
   для: Enter   (24.12.2013 в 12:16)
 

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

  Ответить  
 
 автор: Enter   (24.12.2013 в 12:54)   письмо автору
 
   для: psychomc   (24.12.2013 в 12:19)
 

Хорошо, тогда проведите тесты, что будет быстрее работать, выборка из БД по айди или file_get_content одной строки одного файла из файловой системы линукса, что будет быстрее, update/insert БД или запись строки в один файл? Учтите разные нагрузки на БД, совокупность выборки/вставки данных с другими запросами, другие условия, о которых можно погуглить.

Мне вот интересно, что будет быстрее, noSql БД или файловая система.

  Ответить  
 
 автор: Valick   (24.12.2013 в 13:21)   письмо автору
 
   для: Enter   (24.12.2013 в 12:54)
 

файлы - это тупое хранение, в БД возможен анализ и обработка

  Ответить  
 
 автор: Enter   (24.12.2013 в 13:32)   письмо автору
 
   для: Valick   (24.12.2013 в 13:21)
 

так мне не нужен анализ и обработка. тупо хранить в одном файле строку в json формате. Какая обработка-то?

  Ответить  
 
 автор: Valick   (24.12.2013 в 13:43)   письмо автору
 
   для: Enter   (24.12.2013 в 13:32)
 

так мне не нужен анализ и обработка
это уже не мои проблемы, но сильно рекомендую хоть изредка заглядывать в будущее

  Ответить  
 
 автор: Enter   (24.12.2013 в 13:48)   письмо автору
 
   для: Valick   (24.12.2013 в 13:43)
 

Хорошо, раз вы специалист, то объясните мне))

  Ответить  
 
 автор: psychomc   (24.12.2013 в 13:46)   письмо автору
 
   для: Enter   (24.12.2013 в 12:54)
 

плохо знаком с nosql, но думаю зависеть будет от оптимизации таблиц. обычно самая затратная операция это подключение к бд. если это не единственная причина, из-за которой используется бд в проекте, то не вижу смысла использовать файлы. плюс опять же, есть тот же memcached. я вообще сомневаюсь, что операцией поиска будут пользоваться так уж часто, если конечно вы не поисковик разрабатываете

  Ответить  
 
 автор: Enter   (24.12.2013 в 13:50)   письмо автору
 
   для: psychomc   (24.12.2013 в 13:46)
 

Часто пользуются. Не поисковик, но это главная операция. Кстати, вот статья на тему http://www.xakep.ru/magazine/xa/128/020/1.asp

  Ответить  
 
 автор: Igorek   (24.12.2013 в 14:10)   письмо автору
 
   для: Enter   (24.12.2013 в 13:50)
 

Я почти на 100% уверен, что вам мускла хватит за глаза. пусть даже на каждый поисковый запрос новая запись в таблице. при нагрузке в 10000 инсертов в день, получаем 300000 в месяц. старые записи (больше месяца) можно удалять или в архивную таблицу переносить, если они нужны конечно.

если вдруг нагрузка вырастет - можно будет и с NoSQL заморочиться. Главное раньше времени лишней работы не делать. Не надо заниматься оптимизацией раньше времени!

  Ответить  
 
 автор: Enter   (24.12.2013 в 14:13)   письмо автору
 
   для: Igorek   (24.12.2013 в 14:10)
 

Нагрузка будет больше, чем 10000. Это кол-во людей, а один человек может 10 раз поиск использовать. Или больше.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования