celsoft 6 076 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 http://dle-news.ru/2007/11/09/nuzhna-konsu...zovatelejj.html Цитата Ссылка на сообщение Поделиться на других сайтах
evolver 1 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 Поясните плиз, в чем заключается нагрузка на MySQL на данный момент? Цитата Ссылка на сообщение Поделиться на других сайтах
kosen 3 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 (изменено) полагаю, что речь идёт о кол-вах запросов к БД... при выводе новости... Но могу и ошибаться... Изменено 9 ноября 2007 пользователем kosen Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 Автор Поясните плиз, в чем заключается нагрузка на MySQL на данный момент? объясняю. Для того что бы показать вам новость, скрипт делает один запрос к MySQL но задействует несколько полей БД где просить выбрать из всей базы новость за определенный промежуток времени и который отвечает названию, сравнивая строки. Новый вариант будет делать запрос, используя для поиска только один параметр и тот числовой, что гораздо гораздо быстрее. На маленьких базах это незаметно, на больших существенный плюс, также при большой посещаемости это большой плюс Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 Мне не понравилось! http://site.ru/id новости/news.html Лучше бы http://site.ru/id новости/а тут имя новости.html Это моё мение! Цитата Ссылка на сообщение Поделиться на других сайтах
Владимир П 0 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 flo.mAster, вообщем то так и есть Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 если так и есть то сории Цитата Ссылка на сообщение Поделиться на других сайтах
evolver 1 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 (изменено) Поясните плиз, в чем заключается нагрузка на MySQL на данный момент? объясняю. Для того что бы показать вам новость, скрипт делает один запрос к MySQL но задействует несколько полей БД где просить выбрать из всей базы новость за определенный промежуток времени и который отвечает названию, сравнивая строки. Новый вариант будет делать запрос, используя для поиска только один параметр и тот числовой, что гораздо гораздо быстрее. На маленьких базах это незаметно, на больших существенный плюс, также при большой посещаемости это большой плюс Все верно, однако не могу понять, что будет если смотреть так: site.zz/2007/ или так site.zz/2007/01/ И еще у Вас таблица POST индексируется по date и short_story, причем последний имеет очень тяжелую индексацию (для больших баз). Смотрим дальше // ################ Новость целиком ################# if ($subaction != '' OR $newsid) { if (!$newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access FROM " . PREFIX . "_post where id = '$newsid' LIMIT 0,1"; if ($subaction == '') $subaction = "showfull"; } с этим все понятно - where id = '$newsid' беда здесь - WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; ну и в реляционных базах конечно ID рулит хотя я вот о чем подумал... LIMIT 0,1 это зачем? лишнее телодвижение. Я думаю две новости с одинаковым alt_name не получится завести. и вот еще что: если бы дата хранилась как timestamp то по целому числу найдет быстрее (как и индекс) нежели сравнение строк. Хотя я не могу говорить о том с какой целью заводилось поле дата в таком виде. Изменено 9 ноября 2007 пользователем EvolVER Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 Автор Все верно, однако не могу понять, что будет если смотреть так: site.zz/2007/ или так site.zz/2007/01/ как было так и будет календарь использует данные пути беда здесь - WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; от этого я и хочу избавится, но для этого нужно изменить URL. И этот запрос совсем не является бедой, он достаточно быстрый, но я хочу сделать еще лучше и быстрееи вот еще что: если бы дата хранилась как timestamp то по целому числу найдет быстрее (как и индекс) нежели сравнение строк. Хотя я не могу говорить о том с какой целью заводилось поле дата в таком виде. неверно в текущем поле дата есть полноценный ключ и он прекрасно задействуется для этого и написано date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR такая конструкция нужно чтобы ключи использовались, т.к. при выборке по функции ключи не задейстуются.хотя я вот о чем подумал... LIMIT 0,1 это зачем? лишнее телодвижение. Я думаю две новости с одинаковым alt_name не получится завести. завести то как раз получится, ничего не мешает для этого и стоит LIMIT 0,1 чтобы не тянуть несколько новостей из БД Цитата Ссылка на сообщение Поделиться на других сайтах
max-money 0 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 (изменено) Уже давно для себя такое реализовал, но перывать все было лень и я ограничиля только названием новости, вышло так http://energyua.com/2007/11/05/1022.html. Ну а дата по сути нужна, это дает возможность без запроса к базе вернуть нужный заголовок клиенту. На одном изи своих сайтов я поисковикам практически всегда (задаю время устаревания) отдаю header("HTTP/1.1 304 Not Modified");, что еще в большей мере снижает нагрузку. Хотя про это я наверное уже на этом форуме писал. В mysql LIMIT 0,1 эффективно срабатывает только при поле с индексом "UNIQUE", по непонятным мне причинам mysql все равно ищет все записи, но выводит одну. По поводу даты - мне удобней работать с юникс-форматом. Изменено 9 ноября 2007 пользователем max-money Цитата Ссылка на сообщение Поделиться на других сайтах
evolver 1 Опубликовано: 9 ноября 2007 Рассказать Опубликовано: 9 ноября 2007 Все верно, однако не могу понять, что будет если смотреть так: site.zz/2007/ или так site.zz/2007/01/ как было так и будет календарь использует данные пути беда здесь - WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; от этого я и хочу избавится, но для этого нужно изменить URL. И этот запрос совсем не является бедой, он достаточно быстрый, но я хочу сделать еще лучше и быстрее на большой базе он не может быть быстрым. Уберите хотя бы INTERVAL на базе в несколько сотен килозаписей и убедитесь как скорость подскочет. Может проще завести еще поле хотя я вот о чем подумал... LIMIT 0,1 это зачем? лишнее телодвижение. Я думаю две новости с одинаковым alt_name не получится завести. завести то как раз получится, ничего не мешает для этого и стоит LIMIT 0,1 чтобы не тянуть несколько новостей из БД я просто не вникал, но получается: а) дубляж б) одна новость не будет доступна, если будут одинаковые alt_name и разные категории неверно в текущем поле дата есть полноценный ключ и он прекрасно задействуется для этого и написано date >= '{$yea}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR такая конструкция нужно чтобы ключи использовались, т.к. при выборке по функции ключи не задейстуются. в данном случае подойдет только id, но это актуально только для больших баз, хотя, что называть большой базой. Если уж такая большая база, то использовать MSSQL хотя бы и с кластерами. а если вопрос принципиальный, то я бы конечно поменял с даты на ид - ИМХО красивее - это раз, да и потом будет проще в дорисовывании всяких фишек - это два. Мне кажется, что с таким изменениям нужно не соглашаться тока тем, у кого понатыканы моды и написанные не своими руками. А всем остальным должно быть все равно. Ради примера: не помню какой сайт (какой-то продажник-магнат авто в Москве) юзает данный движок, так ему пофигу, что ссылки на машины идут как на новость, а не сделано красиво, как в каталоге. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 10 ноября 2007 Рассказать Опубликовано: 10 ноября 2007 Автор на большой базе он не может быть быстрым. Уберите хотя бы INTERVAL на базе в несколько сотен килозаписей и убедитесь как скорость подскочет. подсчет идет по индексу а не по базе Цитата Ссылка на сообщение Поделиться на других сайтах
dataman 0 Опубликовано: 10 ноября 2007 Рассказать Опубликовано: 10 ноября 2007 Я думаю две новости с одинаковым alt_name не получится завести. Я извиняюсь , может и не втему .. Нопоповоду этого - наболело .. К сожалению , мои пользователи , которые ведут свои разделы весьма просто могут создать запару месяцев 200 новостей - обзор газеты, или 150 - криминальная сводка , 400 - обьявление о торгах. пРИЧЁМ если дело в пятницу или суботу - то ктото торопиццо или наоборот , навёрстывает путём постинга новостей в колисиства 10 - 15. Из за этого приходится онключать ЧПУ, к новостям стучаться по id. Посему - архиважно предусмотреть всёже ГЕНЕРАЦИЮ уникального алтернативного имени. Либо - тупо, в случае ошибки прибавлять к имени ID новости. Цитата Ссылка на сообщение Поделиться на других сайтах
xsong 1 Опубликовано: 12 ноября 2007 Рассказать Опубликовано: 12 ноября 2007 я против Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 13 ноября 2007 Рассказать Опубликовано: 13 ноября 2007 Не против. Думаю, что можно делать два варианта. Просто два комплекта файлов. Или руководство, как вернуть так, как было. Ведь на больших сайтах поисковик уже прошёлся и теперь все страницы станут для него 404 =( Так что думаю стоит подумать о двух вариантах. Или о настройке в админке. Цитата Ссылка на сообщение Поделиться на других сайтах
1vic 0 Опубликовано: 13 ноября 2007 Рассказать Опубликовано: 13 ноября 2007 Skript ya eshe ne stavil a potomy hochy bistrii variant. Spasibo, CelSoft! Цитата Ссылка на сообщение Поделиться на других сайтах
kosen 3 Опубликовано: 13 ноября 2007 Рассказать Опубликовано: 13 ноября 2007 Ведь на больших сайтах поисковик уже прошёлся и теперь все страницы станут для него 404 =( Так ведь было сказано, что для уже добавленных новостей изменения не коснутся... только для новых материалов... Так что с поисковиками проблем не будет... по идее... Цитата Ссылка на сообщение Поделиться на других сайтах
xsong 1 Опубликовано: 13 ноября 2007 Рассказать Опубликовано: 13 ноября 2007 всеравно лучше сделать 2 варианта также как с чпу и без чтобы можно было отключить... лично я против нагрузки и так почти нет зачем его делать воздушным) Цитата Ссылка на сообщение Поделиться на других сайтах
eRED 0 Опубликовано: 13 ноября 2007 Рассказать Опубликовано: 13 ноября 2007 мне нравится вариант http://site.net/id.html, а вариант http://site.net/testovyj_zagolovok_novosti.html как-то громоздко смотрится. к тому же, на позиции в поисковиках, чпу влияет слабо либо вообще не влияет. поисковику до лампочки что в урл. Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 14 ноября 2007 Рассказать Опубликовано: 14 ноября 2007 Ведь на больших сайтах поисковик уже прошёлся и теперь все страницы станут для него 404 =( Так ведь было сказано, что для уже добавленных новостей изменения не коснутся... только для новых материалов... Так что с поисковиками проблем не будет... по идее... Каким образом?Ведь новости будут же продолжать запрашиваться по старой схеме, а в скрипте будет введена новая. Можно конечно сделать второй реврайт и адресовать его на другой скрипт...Тогда наверное изменения не коснуться. Цитата Ссылка на сообщение Поделиться на других сайтах
kosen 3 Опубликовано: 14 ноября 2007 Рассказать Опубликовано: 14 ноября 2007 (изменено) IT-Security, Вот слова Целсофта: Хочу сразу сказать что если вы переживаете за проиндексированные страницы в поисковиках, то не переживайте мы реализуем это так, что все ваши старые новости останутся неизменными, URL для них будет по старому принципу, только вновь добавленные новости будут иметь новый URL. Я так понял, что нововведения НИКОИМ образом НЕ ЗАТРОНУТ СТАРЫЕ новости... Изменено 14 ноября 2007 пользователем kosen Цитата Ссылка на сообщение Поделиться на других сайтах
Jam 0 Опубликовано: 14 ноября 2007 Рассказать Опубликовано: 14 ноября 2007 Лучше сделать так, чтобы парсировались и те и такие. Это реально, я знаю... Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 14 ноября 2007 Рассказать Опубликовано: 14 ноября 2007 Ясен пень реально. Два правила и два скрипта... Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 10 декабря 2007 Рассказать Опубликовано: 10 декабря 2007 Я бы оставил и сделал новый вариант и дать этот выбор пользователю в админки или при установки. Цитата Ссылка на сообщение Поделиться на других сайтах
Danila 8 Опубликовано: 11 декабря 2007 Рассказать Опубликовано: 11 декабря 2007 Я бы оставил и сделал новый вариант и дать этот выбор пользователю в админки или при установки. А что днлать тем, у кого двиг уже установлен и работает года 1.5? Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.