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]   

> Описание: Mysql or file
Еугений
Отправлено: 27 Декабря, 2012 - 23:06:51
Post Id


Частый гость


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


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




Вот такой вопрос возник.
Решил на каждой странице сайта где нибудь разместить блок "последние три новостя сайта".
Сначала хотел просто в той части сделать запрос в бд.
Но потом пришла мысль - всякий раз при редактировании/добавлением статьи записывать/редактировать в обычный текстовый файл последнии новости. И вместо запроса в бд считывать с текстового файла определенным образом.
В самом деле, зачем постоянно напрягать бд, если новости редко добавляются? Хочу услышать ваше мнение.
 
 Top
avtor.fox
Отправлено: 27 Декабря, 2012 - 23:09:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Еугений
Вы знаете разницу между базой данных и файлами?
(оперировать с такой информацией гораздо легче в базе данных)
 
 Top
Еугений
Отправлено: 27 Декабря, 2012 - 23:11:50
Post Id


Частый гость


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


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




avtor.fox не знаю. Просто мне кажется что функция fread более быстрей чем select
 
 Top
LIME
Отправлено: 27 Декабря, 2012 - 23:16:44
Post Id


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


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


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




вполне здравая мысль
кэшируем если нет кэша
и удаляем кэш при добавлении
только вот база тоже кеширует
к томуже запрос легкий
прирост будет но незначительный имхо
 
 Top
OrmaJever Модератор
Отправлено: 27 Декабря, 2012 - 23:19:55
Post Id



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


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


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




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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Еугений
Отправлено: 27 Декабря, 2012 - 23:22:43
Post Id


Частый гость


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


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




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

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

(Отредактировано автором: 27 Декабря, 2012 - 23:25:11)

 
 Top
LIME
Отправлено: 27 Декабря, 2012 - 23:26:17
Post Id


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


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


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




а что сложного отследить изменение?
онож в админке происходит
вот при инсерте и удалять кэш
только это миллисекунды в +
 
 Top
Саныч Модератор
Отправлено: 28 Декабря, 2012 - 00:48:04
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




LIME, ну все же +. Тут +, там + в итоге получили ускорение Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
master_alf
Отправлено: 28 Декабря, 2012 - 08:33:15
Post Id


Новичок


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


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




ИМХО, чтение из файла при каждой загрузке страницы - это сомнительный выигрышь. Даже если функция чтения быстрее, чем получение данных из БД, лишние обращения к винту, по идее, не есть гут. А если кэшировать результат и держать его, до изменения данных в файле - не всё ли равно, откуда они будут браться один раз? При таком раскладе, если весь остальной контент берется из базы, мне кажется нецелесообразным хранить новости в файле.

Всё, конечно же, ИМХО.
 
 Top
LIME
Отправлено: 28 Декабря, 2012 - 10:16:28
Post Id


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


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


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




master_alf ну да...бд кэширует результат в памяти
однако и фс тоже это делает
тут хз...мерить надо наверное
 
 Top
sKaa
Отправлено: 28 Декабря, 2012 - 10:27:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


master_alf пишет:
... чем получение данных из БД, лишние обращения к винту, по идее, не есть гут.

Послушайте, а по-вашему зашифрованные данные из таблиц баз данных хранятся не на винте, а вакууме?
Обращение к винту будет в любом случае если выбирать между файлом и такими БД как mysq, postgree итд. Это конечно не суть. Тоже ИМХО, конечно же...
 
 Top
master_alf
Отправлено: 28 Декабря, 2012 - 10:31:12
Post Id


Новичок


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


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




sKaa
Странный тон... я, что вас оскорбил чем-то?

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

(Отредактировано автором: 28 Декабря, 2012 - 10:32:41)

 
 Top
sKaa
Отправлено: 28 Декабря, 2012 - 10:36:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


В оперативной памяти там, насколько мне известно, хотя могу и ошибиться, храниться только результат обработки последнего запроса. Нужно же его где-то хранить перед тем как вернуть и желательно где-нибудь не в файле.
Собственно и скрипт php загружая строки из файла хранит их в оперативке.

Всё зависит от того, какая у автора стоит задача.
Если ему нужно хранить в файле набор единичек и нулей - быстрее будет файл.
 
 Top
master_alf
Отправлено: 28 Декабря, 2012 - 10:38:04
Post Id


Новичок


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


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




LIME пишет:
master_alf ну да...бд кэширует результат в памяти
однако и фс тоже это делает
тут хз...мерить надо наверное

Я одно время так же задавался очень сильно вопросом оптимизации кода, когда количество стало переходить в качество... и один опытный товарищ, у которого я часто консультировался, процитировал мне кого-то из именитых программистов. "Если бы на первом месте стояла экономия ресурсов, то мы бы до сих пор все писали только на Си". Всё-таки такие языки как PHP, созданы не для ОМГ быстроты, а для удобства и скорости разработки. Я бы исходил из этого. Выигрыш в наносекунду - это, конечно, хорошо, но когда на то, что бы понять "а будет ли здесь этот выигрыш" тратится несколько дней на обсуждение - думаю, это бесполезно. Когда оба варианты достаточно хороши, лучше использовать тот, который будет более читабельным и удобным в данном контексте. Вот мое мнение. Улыбка
 
 Top
Zuldek
Отправлено: 28 Декабря, 2012 - 11:00:14
Post Id


Постоянный участник


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


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




Евгений, скоро придете к мысли, что если хранить результат запроса в виде массива в php файле cash.php, то это вообще будет сказка Улыбка
Рациональность зависит от частоты запросов и нагруженности сервера баз данных. Всегда можно посмотреть будет-ли кешироваться запрос СУБД или не будет. Если будет - отдавайте с бд.

(Отредактировано автором: 28 Декабря, 2012 - 11:04:29)

 
 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