Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011
Помог: 1 раз(а)
Вот такой вопрос возник.
Решил на каждой странице сайта где нибудь разместить блок "последние три новостя сайта".
Сначала хотел просто в той части сделать запрос в бд.
Но потом пришла мысль - всякий раз при редактировании/добавлением статьи записывать/редактировать в обычный текстовый файл последнии новости. И вместо запроса в бд считывать с текстового файла определенным образом.
В самом деле, зачем постоянно напрягать бд, если новости редко добавляются? Хочу услышать ваше мнение.
avtor.fox
Отправлено: 27 Декабря, 2012 - 23:09:20
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
Еугений
Вы знаете разницу между базой данных и файлами?
(оперировать с такой информацией гораздо легче в базе данных)
Еугений
Отправлено: 27 Декабря, 2012 - 23:11:50
Частый гость
Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011
Помог: 1 раз(а)
avtor.fox не знаю. Просто мне кажется что функция fread более быстрей чем select
LIME
Отправлено: 27 Декабря, 2012 - 23:16:44
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
вполне здравая мысль
кэшируем если нет кэша
и удаляем кэш при добавлении
только вот база тоже кеширует
к томуже запрос легкий
прирост будет но незначительный имхо
OrmaJever
Отправлено: 27 Декабря, 2012 - 23:19:55
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Во-первых быстрее создать одну тему место двух.
во-вторых чтение с файла конешно быстрее, но скорее всего вы не сможите отследить изменения в бд.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Еугений
Отправлено: 27 Декабря, 2012 - 23:22:43
Частый гость
Покинул форум
Сообщений всего: 176
Дата рег-ции: Апр. 2011
Помог: 1 раз(а)
OrmaJever пишет:
Во-первых быстрее создать одну тему место двух.
во-вторых чтение с файла конешно быстрее, но скорее всего вы не сможите отследить изменения в бд.
насчет темы случайно вышло
что значит не смогу отследить изменения? Изменения только тогда, когда я, админ, добавляю статьи и редактирую. Сразу же после этого файл будет редактироваться, в сценарии код будет соответствующий, сразу после инсерта или апдейта
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
а что сложного отследить изменение?
онож в админке происходит
вот при инсерте и удалять кэш
только это миллисекунды в +
Саныч
Отправлено: 28 Декабря, 2012 - 00:48:04
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
LIME, ну все же +. Тут +, там + в итоге получили ускорение
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
master_alf
Отправлено: 28 Декабря, 2012 - 08:33:15
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
ИМХО, чтение из файла при каждой загрузке страницы - это сомнительный выигрышь. Даже если функция чтения быстрее, чем получение данных из БД, лишние обращения к винту, по идее, не есть гут. А если кэшировать результат и держать его, до изменения данных в файле - не всё ли равно, откуда они будут браться один раз? При таком раскладе, если весь остальной контент берется из базы, мне кажется нецелесообразным хранить новости в файле.
Всё, конечно же, ИМХО.
LIME
Отправлено: 28 Декабря, 2012 - 10:16:28
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
master_alf ну да...бд кэширует результат в памяти
однако и фс тоже это делает
тут хз...мерить надо наверное
sKaa
Отправлено: 28 Декабря, 2012 - 10:27:26
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
master_alf пишет:
... чем получение данных из БД, лишние обращения к винту, по идее, не есть гут.
Послушайте, а по-вашему зашифрованные данные из таблиц баз данных хранятся не на винте, а вакууме?
Обращение к винту будет в любом случае если выбирать между файлом и такими БД как mysq, postgree итд. Это конечно не суть. Тоже ИМХО, конечно же...
master_alf
Отправлено: 28 Декабря, 2012 - 10:31:12
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
sKaa
Странный тон... я, что вас оскорбил чем-то?
Данные в БД хранятся, естественно, в виде файлов на винте. Но в БД есть внутренний кэш, часть данных хранится в оперативной памяти и т.д. Иначе зачем вся эта надстройка в виде Сервера БД над файлами, где данные хранятся? Для удобства и оперативной работы, не так ли?
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
В оперативной памяти там, насколько мне известно, хотя могу и ошибиться, храниться только результат обработки последнего запроса. Нужно же его где-то хранить перед тем как вернуть и желательно где-нибудь не в файле.
Собственно и скрипт php загружая строки из файла хранит их в оперативке.
Всё зависит от того, какая у автора стоит задача.
Если ему нужно хранить в файле набор единичек и нулей - быстрее будет файл.
master_alf
Отправлено: 28 Декабря, 2012 - 10:38:04
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
LIME пишет:
master_alf ну да...бд кэширует результат в памяти
однако и фс тоже это делает
тут хз...мерить надо наверное
Я одно время так же задавался очень сильно вопросом оптимизации кода, когда количество стало переходить в качество... и один опытный товарищ, у которого я часто консультировался, процитировал мне кого-то из именитых программистов. "Если бы на первом месте стояла экономия ресурсов, то мы бы до сих пор все писали только на Си". Всё-таки такие языки как PHP, созданы не для ОМГ быстроты, а для удобства и скорости разработки. Я бы исходил из этого. Выигрыш в наносекунду - это, конечно, хорошо, но когда на то, что бы понять "а будет ли здесь этот выигрыш" тратится несколько дней на обсуждение - думаю, это бесполезно. Когда оба варианты достаточно хороши, лучше использовать тот, который будет более читабельным и удобным в данном контексте. Вот мое мнение.
Zuldek
Отправлено: 28 Декабря, 2012 - 11:00:14
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Евгений, скоро придете к мысли, что если хранить результат запроса в виде массива в php файле cash.php, то это вообще будет сказка
Рациональность зависит от частоты запросов и нагруженности сервера баз данных. Всегда можно посмотреть будет-ли кешироваться запрос СУБД или не будет. Если будет - отдавайте с бд.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.