|
|
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Доброй ночи. Скажите, что предпочтительнее использовать Sql-запросы к базе, или Cash? Пример. Новостной сайт, или сайт контента со статьями. Статей (страниц) до 500, или до 1000, или свыше 1000. Для вывода тайтлов-ссылок последних 300 статей на главной странице лучше использовать запрос к БД, или вытягивать из кеша? А отдельную страницу? Имеется в виду каждый раз дергать базу, или первый раз дернуть все, что есть в базе и поместить в кеш, а потом все из кеша дергать. Что предпочтительнее юзать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 06:04 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Моё мнение: 1. Пишете хороший запрос; 2. Если надо, то оптимизируете его; 3. Если оптимизировать дальше некуда, а надо, тогда и задумывайтесь про Cash и другие способы. Тем более кэш может быть и на уровне БД :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 09:09 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
быстрее взять из кеша но жертвуя памятью я так понимаю вы без орм? можно сделать класс который сам будет кешировать по ключу Sql-запросы + параметры при обращение к бд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 09:19 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Часто используемые данные однозначно кешируйте, не обязательно в память, можно и в файловую систему Проведите измерения на 1000 чтений тысяч страниц с кешированием и без (надеюсь в каком нить базовом классе кеширование быстро врубите) и тогда уже решайте что для вас лучше, всее зависит от специфики реализации, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 10:46 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Я склоняюсь к идее вытянуть одним махом всю базу в кеш и каждый раз вытягивать из кеша. Меня что больше интересует, так это то, что в все данные в кеше хранятся в типе Object, а каждый раз вытягивать их и приводить к соответствующим типам - насколько быстро это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 22:22 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
avolikЯ склоняюсь к идее вытянуть одним махом всю базу в кеш и каждый раз вытягивать из кеша. Интересное решение ). Вопрос, на сайте уже есть посещаемость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 11:54 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
avolik, а вы не рассматривали вариант кеширования самой новостной страницы? То есть кешировать не запрос в базу, а сам html - код, возвращаемый пользователю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 12:03 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Да, посещаемость около 2000 уникальных в сутки. Я попробовал не само кеширование страниц (пока не разобрался с этим еще), а в объект кеша загнал всю базу данных (200 записей из таблицы статей). И когда пользователь запрашивает конкретную статью, я ищу её не в БД, а в кеше через приведение объекта кеша к нужному типу List<Article> и после этого поиском лямбда выражением требуемой статьи в списке List<Article>.Find(art => art.Id == paramInQueryString). Особого выигрыша по скорости загрузки сайта не получил. Возможно что я не знаю, пока еще только учусь. Я сеошник и программирование далось мне не без трудностей. Но вроде сайт пока на плаву. Ожидается посещаемость до 5000 в течение года-полтора поднять. Вот тогда я реально, мне кажется, смогу выяснить что круче - кеширование, или прямой запрос к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 15:23 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Прямой запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 15:26 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
А можно поподробнее?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 21:39 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
avolikВот тогда я реально, мне кажется, смогу выяснить что круче - кеширование, или прямой запрос к БД.Вы для начала реализуйте кэширование, а уже потом выясняйте :) Кэш - это промежуточный буфер с быстрым доступом. Вот это:avolikList<Article>.Find(art => art.Id == paramInQueryString)не быстрый доступ однако, а поиск по буферу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 23:34 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
skyANA, И где этот буффер хранится? В базе, в файловой системе, или (не дай Б-г) в ОЗУ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:01 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Блин, я вообще новичек в программировании и в aSP.NET в частности. 1. Чем плох такой вариант: все, что в БД залить в Cash["someKey"] и при каждом заходе на сайт искать статью не в БД, а в кеше: (Cash["someKey"] as List<Article>).Find(art => art.Id == queryStringId) ? 2. Почему в ОЗУ нельзя? И что нельзя? Растолкуйте ,я почти полный ноль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:12 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
avolik...искать статью не в БД, а в кеше... Если кеш у Вас в ОЗУ, то там и ищите. Имхо, будет побыстрее, чем в базе. Это если статей у Вас пара-тройка, и которые очень редко изменяются. Вообще-то, кеш совсем не для этого предназначен. ПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:20 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
avolik, 1. сколько времени занимает выборка тайтлов последних 300 статей из БД? 2. сколько времени занимает выборка статьи по идентификатору из БД? 3. какого результата Вы хотите добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:24 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Смотрю на цифири в топике и не вижу смысла в кэшировании :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:26 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
skyANAСмотрю на цифири в топике и не вижу смысла в кэшировании :) А что такое кеширование? Кто-то придумал какую-то волшебную штучку из которой данные получаются быстрее, чем из реляционной базы MS SQL, например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:31 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
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.[режим зануды выкл] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:36 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
ShSerge, ну к примеру промежуточное хранение результата выборки данных из стапицот таблиц :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:37 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
ShSergeПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум. Это где такое написано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:38 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
bazileShSergeПС. Насчёт новичка. Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум. Это где такое написано? Это я Вам говорю. Верьте мне. Но не принимайте близко. Я такое говорю всем "новичкам". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:45 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
skyANAShSerge, ну к примеру промежуточное хранение результата выборки данных из стапицот таблиц :) Выборка и стапицот, определённо будет хуже работать, чем SQL-запрос. Особенно, если таблички правильно проиндексированы и запросы правильные (с джойнами по индексным полям). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:49 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
ShSergeВыборка и стапицот, определённо будет хуже работать, чем SQL-запрос. Особенно, если таблички правильно проиндексированы и запросы правильные (с джойнами по индексным полям).Ничего не понял :) Выборка из стапицот - это и есть SQL-запрос. Что хуже чего будет работать и почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:58 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
ShSerge.... Если Вы - новичёк, этот форум не для Вас. Здесь профессиональный форум.о_О ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 02:07 |
|
||
|
Cash VS Sql query - что быстрее работает и меньше грузит сервер
|
|||
|---|---|---|---|
|
#18+
Конкретнее: 1. Таблица в БД одна и хранит всю инфу о статье. 2. Количество записей 2000. 3. Статья не изменяется никогда, нет даже комментариев к ней. 4. При добавлении новой статьи кеш обновляется. При таком раскладе оправдано ли ручное кеширование? Кто-то может со всей ответственностью ответить "ДА", или "НЕТ" ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 02:58 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37687321&tid=1359850]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 518ms |

| 0 / 0 |
