powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Cash VS Sql query - что быстрее работает и меньше грузит сервер
25 сообщений из 33, страница 1 из 2
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37683454
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброй ночи.

Скажите, что предпочтительнее использовать Sql-запросы к базе, или Cash?

Пример.
Новостной сайт, или сайт контента со статьями. Статей (страниц) до 500, или до 1000, или свыше 1000.

Для вывода тайтлов-ссылок последних 300 статей на главной странице лучше использовать запрос к БД, или вытягивать из кеша? А отдельную страницу?
Имеется в виду каждый раз дергать базу, или первый раз дернуть все, что есть в базе и поместить в кеш, а потом все из кеша дергать.

Что предпочтительнее юзать?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37683526
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моё мнение:
1. Пишете хороший запрос;
2. Если надо, то оптимизируете его;
3. Если оптимизировать дальше некуда, а надо, тогда и задумывайтесь про Cash и другие способы.

Тем более кэш может быть и на уровне БД :)
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37683535
brainproof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
быстрее взять из кеша но жертвуя памятью
я так понимаю вы без орм?
можно сделать класс который сам будет кешировать по ключу Sql-запросы + параметры при обращение к бд
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37683681
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто используемые данные однозначно кешируйте, не обязательно в память, можно и в файловую систему
Проведите измерения на 1000 чтений тысяч страниц с кешированием и без (надеюсь в каком нить базовом классе кеширование быстро врубите) и тогда уже решайте что для вас лучше, всее зависит от специфики реализации, имхо
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37685188
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я склоняюсь к идее вытянуть одним махом всю базу в кеш и каждый раз вытягивать из кеша. Меня что больше интересует, так это то, что в все данные в кеше хранятся в типе Object, а каждый раз вытягивать их и приводить к соответствующим типам - насколько быстро это?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37685981
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avolikЯ склоняюсь к идее вытянуть одним махом всю базу в кеш и каждый раз вытягивать из кеша.
Интересное решение ).
Вопрос, на сайте уже есть посещаемость?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37686004
rudevelop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avolik, а вы не рассматривали вариант кеширования самой новостной страницы? То есть кешировать не запрос в базу, а сам html - код, возвращаемый пользователю?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37686515
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, посещаемость около 2000 уникальных в сутки.
Я попробовал не само кеширование страниц (пока не разобрался с этим еще), а в объект кеша загнал всю базу данных (200 записей из таблицы статей). И когда пользователь запрашивает конкретную статью, я ищу её не в БД, а в кеше через приведение объекта кеша к нужному типу List<Article> и после этого поиском лямбда выражением требуемой статьи в списке List<Article>.Find(art => art.Id == paramInQueryString).

Особого выигрыша по скорости загрузки сайта не получил. Возможно что я не знаю, пока еще только учусь. Я сеошник и программирование далось мне не без трудностей. Но вроде сайт пока на плаву. Ожидается посещаемость до 5000 в течение года-полтора поднять. Вот тогда я реально, мне кажется, смогу выяснить что круче - кеширование, или прямой запрос к БД.
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37686520
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прямой запрос.
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687183
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно поподробнее?!
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687271
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avolikВот тогда я реально, мне кажется, смогу выяснить что круче - кеширование, или прямой запрос к БД.Вы для начала реализуйте кэширование, а уже потом выясняйте :)
Кэш - это промежуточный буфер с быстрым доступом.

Вот это:avolikList<Article>.Find(art => art.Id == paramInQueryString)не быстрый доступ однако, а поиск по буферу :)
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687290
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

И где этот буффер хранится? В базе, в файловой системе, или (не дай Б-г) в ОЗУ?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687303
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, я вообще новичек в программировании и в aSP.NET в частности.

1. Чем плох такой вариант: все, что в БД залить в Cash["someKey"] и при каждом заходе на сайт искать статью не в БД, а в кеше: (Cash["someKey"] as List<Article>).Find(art => art.Id == queryStringId) ?

2. Почему в ОЗУ нельзя? И что нельзя?

Растолкуйте ,я почти полный ноль.
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687313
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avolik...искать статью не в БД, а в кеше...
Если кеш у Вас в ОЗУ, то там и ищите. Имхо, будет побыстрее, чем в базе. Это если статей у Вас пара-тройка, и которые очень редко изменяются. Вообще-то, кеш совсем не для этого предназначен.
ПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум.
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687317
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avolik,

1. сколько времени занимает выборка тайтлов последних 300 статей из БД?
2. сколько времени занимает выборка статьи по идентификатору из БД?
3. какого результата Вы хотите добиться?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687321
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрю на цифири в топике и не вижу смысла в кэшировании :)
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687326
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСмотрю на цифири в топике и не вижу смысла в кэшировании :)
А что такое кеширование? Кто-то придумал какую-то волшебную штучку из которой данные получаются быстрее, чем из реляционной базы MS SQL, например?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687336
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avolik1. Чем плох такой вариант: все, что в БД залить в Cash["someKey"] и при каждом заходе на сайт искать статью не в БД, а в кеше: (Cash["someKey"] as List<Article>).Find(art => art.Id == queryStringId) ?
Зависит от ситуации. Если данных мало и они меняются редко, то подобное кеширование пойдет на пользу. Только конструкция Find(art => art.Id == queryStringId) мало эффективна т.к. она должна перебирать все элементы по очереди пока не найдет нужный. В качестве альернативы можно использовать Dictionary<int,Arcticle> - то есть ключом является id статьи. Или же можно реализовать двоичный поиск , не забыв предварительно отсортировать список статей по id (лучше это сделать средствами SQL).

Не забывай что данные в кеше могут устареть т.к. данные в БД могут измениться. И надо или отслеживать изменения в БД или кешировать данные только на определенный период. Все зависит от твоей задачи.

Посмотри также в сторону кеширования страниц целиком с помощью директивы @ OutputCache . Главное ее достоинство что не надо писать никакого кода.

avolik2. Почему в ОЗУ нельзя? И что нельзя?
Можно, главное не перебарщивать. Памяти хоть и много, но она не бесконечна.

P.S. [режим зануды вкл]Cash это наличные деньги. Кеш на английском это cache.[режим зануды выкл]
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687340
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge, ну к примеру промежуточное хранение результата выборки данных из стапицот таблиц :)
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687341
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум.
Это где такое написано?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687348
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileShSergeПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум.
Это где такое написано?
Это я Вам говорю. Верьте мне. Но не принимайте близко. Я такое говорю всем "новичкам". :)
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687351
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAShSerge, ну к примеру промежуточное хранение результата выборки данных из стапицот таблиц :)
Выборка и стапицот, определённо будет хуже работать, чем SQL-запрос. Особенно, если таблички правильно проиндексированы и запросы правильные (с джойнами по индексным полям).
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687356
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeВыборка и стапицот, определённо будет хуже работать, чем SQL-запрос. Особенно, если таблички правильно проиндексированы и запросы правильные (с джойнами по индексным полям).Ничего не понял :) Выборка из стапицот - это и есть SQL-запрос. Что хуже чего будет работать и почему?
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687410
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge.... Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум.о_О
...
Рейтинг: 0 / 0
Cash VS Sql query - что быстрее работает и меньше грузит сервер
    #37687438
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретнее:

1. Таблица в БД одна и хранит всю инфу о статье.
2. Количество записей 2000.
3. Статья не изменяется никогда, нет даже комментариев к ней.
4. При добавлении новой статьи кеш обновляется.

При таком раскладе оправдано ли ручное кеширование?

Кто-то может со всей ответственностью ответить "ДА", или "НЕТ" ?!
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Cash VS Sql query - что быстрее работает и меньше грузит сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]