|
|
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
Есть база на 2 млн. записей. К этой базе есть 2 тысячи запросов в файле. Я выполняю последовательно все запросы из файла к базе. Затем выполняю ещё раз и смотрю на производительность, она меня и интересует (учебная задача). Т.е. логично все закешировать и будет всё быстро работать при втором выполнении всех запросов из файла. Проблема в том, что попадаются запроссы на изменение данных. Они и портят весь сахар. Видимо удаляют весь кеш. (использую INNODB). Таких запросов около 7%. Значит нужно писать своё какое-то умное решение, чтобы не изобретать велосипед, решил спросить тут. Может посоветуете какие-то релизации под мою задачу. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:16:10 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
авторТ.е. логично все закешировать А почему ? это вам лично Олег Бунин сказал ? В других субд вообще нет кеша запросов. И как-то нормально у них все. Причем, некоторые считают что еще более нормально чем у mysql. Вопрос неоднозначный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:22:51 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
netwind, потому что апдейтов намного меньше чем селектов. Потому что идет 100% повторение всех запросов. Возможно в других субд приходится использовать различные memcache-дополнения на веб-проектах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:26:09 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslon, но тогда ваш выдуманный кеш перестанет выдавать достоверные данные. Вы же изменили таблицу. Не вижу проблемы тут. авторВозможно в других субд приходится использовать различные memcache-дополнения на веб-проектах. А когда как. По крайней мере никто не кеширует до того как это им понадобится. Вот что нужно усвоить в учебных целях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:32:40 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
netwind, вы пытаетесь отговорить меня использовать кеш? А если это единственный способ повысить производительность? Насчет достоверных данных, поэтому я и назвал тему "умный кеш". Mysql сбрасывает весь кеш при апдейте. Но ведь можно сбрасывать кеш только у тех запросов, у которых в выборке находилось изменяемая запись. Да, сложно, но можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:45:43 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslonnя и назвал тему "умный кеш". Mysql сбрасывает весь кеш при апдейте. Но ведь можно сбрасывать кеш только у тех запросов, у которых в выборке находилось изменяемая запись. Да, сложно, но можно. не весь, а все запросы в кеше, которые построены на основе изменяемых таблиц. так что он довольно умный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:58:46 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
netwind, у меня две таблицы содержат 99% записей, в них и происходят апдейты в основном. Так что кеширование на уровне таблиц мне не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 17:11:54 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslonНо ведь можно сбрасывать кеш только у тех запросов, у которых в выборке находилось изменяемая запись. Да, сложно, но можно.Ввиду громадного многообразия запросов на выборку это гораздо сложнее, чем кажется на первый взгляд. Потому, видимо, и было принято достаточно простое и понятное решение на уровне СУБД. webslonиспользовать различные memcache-дополненияАга, там можно явно управлять каждым сохраняемым значением. Например, когда точно известно, что при таком-то обновлении некоторое значение должно измениться, то именно его и удалять/обновлять в мемкеше. Однако, мемкеш не панацея, а, скорее, палка о двух концах. В мемкеше можно очень просто и выгодно хранить большой массив, полученный из ресурсожручего запроса. Но изменить (добавить, удалить) один элемент этого массива уже гораздо сложнее, настолько, что в итоге придётся вместо одного харнилища данных (СУБД) достаточно полноценно работать ещё и со вторым (мемкеш). Соответственно, и трудоёмкость разработки/отладки сильно возрастает. А в общем, попробуйте на реальной задаче и убедитесь. Возможно, для конкретной Вашей задачи решение будет достаточно простым. :-) webslonсмотрю на производительностьНередко производительность можно улучшить правильным использованием индексов, типов данных, структуры таблиц... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 17:23:10 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslonЕсть база на 2 млн. записей. К этой базе есть 2 тысячи запросов в файле. Я выполняю последовательно все запросы из файла к базе. Затем выполняю ещё раз и смотрю на производительность, она меня и интересует (учебная задача). Т.е. логично все закешировать и будет всё быстро работать при втором выполнении всех запросов из файла. Проблема в том, что попадаются запроссы на изменение данных. Они и портят весь сахар. Видимо удаляют весь кеш. (использую INNODB). Таких запросов около 7%. . нет, запросы на изменение данных не удаляют кэш (кэш данных, а кэш запросов это полная хрень). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 22:21:59 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
MasterZivнет, запросы на изменение данных не удаляют кэш (кэш данных, а кэш запросов это полная хрень). А вот, кстати, и те самые господа вынужденные возиться с mysql после того как их погнали с ынтерпрайзных баз за растрату cоциалистической собственности на капиталистические лицензии по разным причинам. Инерция мышления не позволяет им допустить случаи, что кеш запросов все-таки может быть выгодным, но это характерное мнение принять во внимание тоже стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 22:41:58 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslonПроблема в том, что попадаются запроссы на изменение данных. Они и портят весь сахар. Видимо удаляют весь кеш. (использую INNODB). Таких запросов около 7%.Это довольно много. В среднем, на каждое изменение данных приходится всего 13 чтений. Много ли будет абсолютно одинаковых запросов среди этих 13 ? В любом случае, ничего не мешает включить кэш запросов и посмотреть на производительность. Только с размером будьте аккуратнее, начинайте с небольших значений, например, с 16 Мбайт. Если будет видна его эффективность в устоявшемся режиме на более-менее длительных временных интервалах, то увеличьте в пару раз. И так продолжайте итеративно до прекращения увеличения эффективности. Как показывает практика, выше примерно 256-512 Мбайт увеличивать бессмысленно, ибо резко растут расходы на обслуживание кэша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 01:37:15 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
miksoft, я юзаю кеш, но его увеличение даже в 10 раз мало чего мне дало, т.к. он не успевает переполняться, видимо, к моменту очистки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 02:42:27 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
а если сделать еще одну таблицу типа memory,-копию апдейты делать к обеим таблицам, селекты из мемори ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 04:04:08 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
webslonmiksoft, я юзаю кеш, но его увеличение даже в 10 раз мало чего мне дало, т.к. он не успевает переполняться, видимо, к моменту очистки.значит, его не нужно настолько увеличивать. посмотрите на семейство переменных Qcache_% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 04:08:02 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
netwindMasterZivнет, запросы на изменение данных не удаляют кэш (кэш данных, а кэш запросов это полная хрень). А вот, кстати, и те самые господа вынужденные возиться с mysql после того как их погнали с ынтерпрайзных баз за растрату cоциалистической собственности на капиталистические лицензии по разным причинам. Инерция мышления не позволяет им допустить случаи, что кеш запросов все-таки может быть выгодным, но это характерное мнение принять во внимание тоже стоит. в Оракле кстати его тоже запилили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 19:11:27 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
netwindMasterZivнет, запросы на изменение данных не удаляют кэш (кэш данных, а кэш запросов это полная хрень). А вот, кстати, и те самые господа вынужденные возиться с mysql после того как их погнали с ынтерпрайзных баз за растрату cоциалистической собственности на капиталистические лицензии по разным причинам. Инерция мышления не позволяет им допустить случаи, что кеш запросов все-таки может быть выгодным, но это характерное мнение принять во внимание тоже стоит. Кэш запросов в БД -- лишь неразумная растрата памяти. В БД надо кэшироровать данные. результаты запросов, если нужно, надо кэшировать в другом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 21:29:58 |
|
||
|
Умное кеширование запросов
|
|||
|---|---|---|---|
|
#18+
MasterZivnetwindпропущено... А вот, кстати, и те самые господа вынужденные возиться с mysql после того как их погнали с ынтерпрайзных баз за растрату cоциалистической собственности на капиталистические лицензии по разным причинам. Инерция мышления не позволяет им допустить случаи, что кеш запросов все-таки может быть выгодным, но это характерное мнение принять во внимание тоже стоит. Кэш запросов в БД -- лишь неразумная растрата памяти. В БД надо кэшироровать данные. результаты запросов, если нужно, надо кэшировать в другом месте. Ну вот поэтому в одной БД в основном Данные кэшируют и очень умно ;) а в другой, свежекупленной но бесплатной, эксперименты ставят ;). Задачи у бд сильно разные, в MySQL часто идут сотни одинаковых запросов подряд, при этом записи вообще нет, при этом часто вообще нет серьёзных требований к целостности данных ( откуда ноги у разных быстрых myisam-ов ), что и приводит к возникновению компонентов вроде этого https://php.net/manual/ru/book.mysqlnd-qc.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 02:53:21 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38848600&tid=1833726]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 413ms |

| 0 / 0 |
