Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » нагрузка на сайт и базу

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

dnm2



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
У меня тут возник такой вопрос, хотелось бы получить ответы экспертов в данной области =)
Итак, к примеру, мне надо создать сайт, что-то типа блога, с кучей разделов, куда каждый зашедший человек мог бы добавлять свою информацию. Вид каждой опубликованной записи одинаков, к примеру: имя, дата, текст.
Я хотел бы спросить: если рубрик, к примеру, 200 и в каждой будет по несколько тысяч записей - стоит ли делать так: просто создать одну таблицу в базе с полями (id рубрики, имя, дата, текст) и туда писать ВСЮ информацию о записях?
то есть фактически стоит вопрос: опасно ли пихать все записи в одну таблицу, где может быть до миллиона записей, или как-то это все-таки разграничивать?
при какой посещаемости сайта и какой частоте записи информации нагрузка на базу и хостинг будет критичной?
какой подход в данном случае уместен?
спасибо за ответ

Всего записей: 135 | Зарегистр. 09-02-2005 | Отправлено: 16:42 11-02-2006 | Исправлено: dnm2, 16:43 11-02-2006
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mysql нормально работает с миллионами записей. Главное чтобы выборки проводились по правильным индексам.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 17:34 11-02-2006
dnm2



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD
спасибо за ответ!
то есть, как я понял, можно пойти путем записи всей инфы в одну таблицу

Всего записей: 135 | Зарегистр. 09-02-2005 | Отправлено: 17:37 11-02-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
можно, и для этого обойти весь dev.mysql.com и прочитать про оптимизацию таблиц.

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 19:37 11-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dnm2
Рассмотрите вариант хранения текста в файлах. Если поиск не нужен по тексту.

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 19:57 11-02-2006
dnm2



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brodyaga
будем думать =)
 
edogs
думал, товарищ. я бы с радостью, но есть свои сложности =) файлов будет слишком много + они будут большие
вы же не забывайте про то, что ОБРАЩЕНИЙ БУДЕТ КУЧА ЗА СЕКУНДУ
то есть вероятность дефекта файла при одновременном обращении нескольких пользователей довольно высока

Всего записей: 135 | Зарегистр. 09-02-2005 | Отправлено: 21:53 11-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dnm2

Цитата:
думал, товарищ. я бы с радостью, но есть свои сложности =) файлов будет слишком много + они будут большие  
вы же не забывайте про то, что ОБРАЩЕНИЙ БУДЕТ КУЧА ЗА СЕКУНДУ  
то есть вероятность дефекта файла при одновременном обращении нескольких пользователей довольно высока

А всё-таки подумайте ещё раз
Файлы бьем по папкам не больше 1000 файлов в папке что бы было "не слишком много".
Большие? Вы longtext или blob поле хотите под текст делать? Тем более скажем - по возможности - выносить в файлы.
Вероятность дефекта файла при обращении многих пользователей. Сомнительно нам, основные обращения будут на чтение, при чтении гикнуться файл вряд ли может. Впрочем тут настаивать на своей правоте не будем, хотя если кто-нибудь захочет нас переубедить, то столкнется с трудностями
Обращений куча за секунду - а Вы вспомните про то как организована база. 1 таблица = 1 файл. Посчитайте сколько будет обращений к базе, т.е. к этому файлу, да ещё если надо будет каждый раз из неё тягать большие файлы.

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 22:31 11-02-2006 | Исправлено: edogs, 22:32 11-02-2006
N Sensey N



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
edogs
я хочу посмотреть как ты на файлах будешь организовывать сортировку... поиск... самые обычные вещи...
 
тут бывает связываешь 4 таблицы... глова болит... я не представляю как на файлах такое соорудить что бы работало быстренько...
 
Зачем изобретать велосипед если за нас уже подумали грамотные люди...

----------
sPaiz-Nuke - Free PHP CMS Web Design and Development Портал для израильтян

Всего записей: 1409 | Зарегистр. 01-10-2002 | Отправлено: 02:31 12-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
N Sensey N

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

Не сможете посмотреть Мы же написали...
Если поиск ...не нужен по тексту.
Ну а если нужен поиск, то мы бы всё равно рассмотрели вариант с "полу"-файлами, т.е. сам полностью контент в файлы, а вот поисковые слова (уже почищенные от шелухи) в базу... возможно даже в отдельную таблицу.
 
Что касается сортировки. Не поняли. Сортировка по чему? По ИД рубрики? Имени? Дате? Так мы это из базы и не предлагали выносить, поэтому не поняли что Вы имеете ввиду говоря про сортировку.
 

Цитата:
Зачем изобретать велосипед если за нас уже подумали грамотные люди...

Не согласны с аналогией. Давайте мы Вас спросим по своему.
Если у Вас есть велосипед придуманный грамотными людьми, Вы пешком хоть иногда будете ходить?

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 03:22 12-02-2006 | Исправлено: edogs, 03:44 12-02-2006
dnm2



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
edogs
Вы всегда о Себе во множественном числе?





Предупреждение за офтоп.
Форум тематический, говорим только по делу.
Личные беседы пожалуйста в ПМ.
(batva)

Всего записей: 135 | Зарегистр. 09-02-2005 | Отправлено: 04:02 12-02-2006
N Sensey N



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
edogs

Цитата:
Не согласны с аналогией. Давайте мы Вас спросим по своему.  
Если у Вас есть велосипед придуманный грамотными людьми, Вы пешком хоть иногда будете ходить?

 
Тада это уже будет мопед с педалями... а ведь мне нужен то велосипед... =))
 
На файлы можно посадить настройки... какие то отдельные элементы... например у меня на сайте 50 тысяч записей таблице... выводятся 10 записей популярных фоток.... при это идет соединение двух таблиц... по рейтингу и т.д....
 
на сайте 100.000 просмотров страниц.... накладно получается...
Повезло что данные вывода меняются только при даче оценки пользователями... та вот когда они делают эту оценку.... я делаю выборку с базы... сортирую... делаю что надо... скидываю в файл - вот тогда это полезно....
 
Смысл в чем - если данные вывода изменяются вследствии каких либо действий... и этих действий гораздо меньше чем случаев вывода.... (например хитов 100,000, имеем 1000,000 (выводов) выборок с базы.. при том что за это время изменений было например всего 2) тогда имеет смысл при совершении этих самых редких действий сбрасывать информацию для вывода - в файл... и ее уже выводить...
 
это имхо...

----------
sPaiz-Nuke - Free PHP CMS Web Design and Development Портал для израильтян

Всего записей: 1409 | Зарегистр. 01-10-2002 | Отправлено: 09:01 12-02-2006
phpbbmods

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
N Sensey N
Имхо  mysql  рулит, нах те файлы! но все же стоит продумать не одну таблицу, легче будет и сортировать и поиск и не запутаешься!

Всего записей: 322 | Зарегистр. 09-02-2004 | Отправлено: 09:39 12-02-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Только ограничение 75000 символов в текстовых полях не делает чести MySql...формально это те же файлы.


----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 12:19 12-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
N Sensey N

Цитата:
Смысл в чем - если данные вывода изменяются вследствии каких либо действий... и этих действий гораздо меньше чем случаев вывода.... (например хитов 100,000, имеем 1000,000 (выводов) выборок с базы.. при том что за это время изменений было например всего 2) тогда имеет смысл при совершении этих самых редких действий сбрасывать информацию для вывода - в файл... и ее уже выводить...  

Вы считаете что описанное в первом посте не подходит под это определение? Текст (большой) меняется редко.
Вы jpeg картинки будете в базе хранить или в файлах и почему?
 
Добавлено:
Brodyaga
longtext ?

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 13:16 12-02-2006
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Файлы не рулят.
mysql со своим одним файлом работает значительно оптимальнее чем ВЫ будете ковыряться со своими.  
При работе на локальном mysql все будет летать.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 19:41 12-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD

Цитата:
Файлы не рулят.  
mysql со своим одним файлом работает значительно оптимальнее чем ВЫ будете ковыряться со своими.  
При работе на локальном mysql все будет летать.

Аргументов опять не будет? Как и в прошлом топике?

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 21:05 12-02-2006
N Sensey N



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
edogs

Цитата:
Вы считаете что описанное в первом посте не подходит под это определение? Текст (большой) меняется редко.  
Вы jpeg картинки будете в базе хранить или в файлах и почему?

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

Цитата:
Аргументов опять не будет? Как и в прошлом топике?

 
Вот как например бы ты реализовал такое на файлах?
Это всего лишь вывод новостей...
 

Цитата:
$res = sql_query("SELECT SQL_CALC_FOUND_ROWS a.news_id, a.news_title, a.news_keywords, DATE_FORMAT(a.news_date, '%d.%m.%Y'), a.news_start_text, IF (LENGTH(a.news_end_text)>2,1,0), a.news_comments_counter, a.news_hit_counter, a.news_topic_id, a.news_author_id, a.news_allow_comments, a.news_auto_br, b.news_topics_title, b.news_topics_image, b.news_topics_description, c.admins_login FROM ".news a,news_topics b, admins c WHERE a.news_enabled=1 AND a.news_show_in_home=1 AND a.news_topic_id = b.news_topics_id and a.news_date < NOW() and a.news_author_id=c.admins_id ORDER BY a.news_priority, a.news_date DESC limit ".$offset.", ".$on_page."", $dbi);
 

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

----------
sPaiz-Nuke - Free PHP CMS Web Design and Development Портал для израильтян

Всего записей: 1409 | Зарегистр. 01-10-2002 | Отправлено: 01:15 13-02-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
N Sensey N
Склоняемся к мысли что Вы нас не поняли.
Ещё раз повторим.  
Мы НЕ призываем отказаться от базы ВООБЩЕ. Мы предлагаем не хранить в ней ТЕКСТ, который БОЛЬШОЙ, а в таблице оставить и дату, и рубрику, и имя и т.д.
 
Внимательно прочитали Ваш запрос в базу.
Конкретно по нему (поиск пока оставляем в покое) и если чисто о скорости речь - вынесли бы текст новости в файлы, остальное (связи и т.д.) оставив в базе.
Допустим база размером 1.500.000 записей. Насколько будет меньше база (по которой кстати делается сортировка и выборка с where) если news_text оттуда вынести в файл? Допустим каждая ячейка с текстом 64Кб... 1.5М*64Кб=... стоит ли настолько увеличивать таблицу по которой будет идти сортировка, выборка, индексация и т.д.?
Допустим лимит для этого запроса 100 записей. Сколько в памяти займет (100 записей)*news_text ? Допустим каждая ячейка с текстом по 64Кб = 6.4Мб? Вам точно это надо?
 

Цитата:
я храню все в мускуле

Мы так поняли это ответ на наш вопрос "а jpeg картинки вы тоже только в базе храните?"

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 01:30 13-02-2006 | Исправлено: edogs, 04:27 13-02-2006
dnm2



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ого =) баталии пошли! ребята, если честно - очень приятно, что тема развивается... спасибо за науку... читаю, думаю =)

Всего записей: 135 | Зарегистр. 09-02-2005 | Отправлено: 02:14 13-02-2006
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
edogs
Дорогие собачки, выборка делается по индексам. Индексы в себя текст не включают.
А если надо взять 100 записей - то откуда ты их загрузиш - из базы или из файла - разницы нет.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 10:47 13-02-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » нагрузка на сайт и базу


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru