Тут считает несколько десятков миллионов сделок, группирует по цене и выводят слева. Есть автообновление каждую секунду и примерно 20-30 пользователей, которые любят держать эту страничку в браузере открытой.
Можно ли сделать такое на PHP?
Ну реалтайма на десятков миллионов подсчётов не добится ни на PHP ни на C++ а кеш он и в африке кеш. А если логика в базе то прочём тут PHP?
Логика есть в базе - в доп. табличке триггер складывать сгруппированную цену по времени и периоду, но есть еще и кеширование на C# - потому что даже такие запросы обрабатывают довольно медленно. Часть запросов считается на самом C# - он хранит все текущие сделки дня в памяти и группирует или ищет сам синуя SQL сервер.
Но с памятью он неэффективно управляется. Пока хватает, но если дело пойдет буду думать о C++
Тут считает несколько десятков миллионов сделок, группирует по цене и выводят слева. Есть автообновление каждую секунду и примерно 20-30 пользователей, которые любят держать эту страничку в браузере открытой.
Можно ли сделать такое на PHP?
Ну реалтайма на десятков миллионов подсчётов не добится ни на PHP ни на C++ а кеш он и в африке кеш. А если логика в базе то прочём тут PHP?
Логика есть в базе - в доп. табличке триггер складывать сгруппированную цену по времени и периоду, но есть еще и кеширование на C# - потому что даже такие запросы обрабатывают довольно медленно. Часть запросов считается на самом C# - он хранит все текущие сделки дня в памяти и группирует или ищет сам синуя SQL сервер.
Но с памятью он неэффективно управляется. Пока хватает, но если дело пойдет буду думать о C++
Ну и причём тут язык? Тем более хранить нужно не в памяти а использовать что-то типа memcashed. Или просчитывать наперёд как говорит крипто.
Тут считает несколько десятков миллионов сделок, группирует по цене и выводят слева. Есть автообновление каждую секунду и примерно 20-30 пользователей, которые любят держать эту страничку в браузере открытой.
Можно ли сделать такое на PHP?
Ну реалтайма на десятков миллионов подсчётов не добится ни на PHP ни на C++ а кеш он и в африке кеш. А если логика в базе то прочём тут PHP?
Логика есть в базе - в доп. табличке триггер складывать сгруппированную цену по времени и периоду, но есть еще и кеширование на C# - потому что даже такие запросы обрабатывают довольно медленно. Часть запросов считается на самом C# - он хранит все текущие сделки дня в памяти и группирует или ищет сам синуя SQL сервер.
Но с памятью он неэффективно управляется. Пока хватает, но если дело пойдет буду думать о C++
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
+1
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
да обсуждали уже, там оказывается что SQL далеко не такой уж и умный. Например что такое для C++ найти значение в табличке из миллиона записей?
SQL над такими вещами задумывается по 0.2 секунды
OtherSide wrote:
SQL над такими вещами задумывается по 0.2 секунды
Что, сам язык задумывается, вне зависимости от базы данных?
Ну а вообще да, скорее всего локальный lookup в памяти - будет быстрее, никто не спорит. А вот если вы несколько нодов засунете для своего проекта, воткнете что-то вроде distributed cache (тот же memcached), то все может быстрее забегать.
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
+1
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
Я думаю где то ближе к тыс если все в памяти лежит. В кешах проекты частенько держат отрендеренные страницы и денормализированные и отрендеренные данные
OtherSide wrote:
SQL над такими вещами задумывается по 0.2 секунды
Что, сам язык задумывается, вне зависимости от базы данных?
Ну а вообще да, скорее всего локальный lookup в памяти - будет быстрее, никто не спорит. А вот если вы несколько нодов засунете для своего проекта, воткнете что-то вроде distributed cache (тот же memcached), то все может быстрее забегать.
И что, хотите сказать такие вещи на PHP будут работать так же быстро как на C++ скажем?
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
да обсуждали уже, там оказывается что SQL далеко не такой уж и умный. Например что такое для C++ найти значение в табличке из миллиона записей?
SQL над такими вещами задумывается по 0.2 секунды
OtherSide wrote:
SQL над такими вещами задумывается по 0.2 секунды
Что, сам язык задумывается, вне зависимости от базы данных?
Ну а вообще да, скорее всего локальный lookup в памяти - будет быстрее, никто не спорит. А вот если вы несколько нодов засунете для своего проекта, воткнете что-то вроде distributed cache (тот же memcached), то все может быстрее забегать.
И что, хотите сказать такие вещи на PHP будут работать так же быстро как на C++ скажем?
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
+1
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
Я думаю где то ближе к тыс если все в памяти лежит. В кешах проекты частенько держат отрендеренные страницы и денормализированные и отрендеренные данные
если про mssql не уверен, что 1000 будет, меньше скорее всего
но никто не запрещает денормализованные данные и в базе хранить (пусть и в промежуточной), но так никто не делает по соображениям производительности
crypto5 wrote:
Это вы ерундой занимаетесь ИМХО, уже есть отлично оптимизированный C/C++ код внутри sql сервера, с кешами, умной статистикой и т.д. Чем он вам не подходит?
+1
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
Я думаю где то ближе к тыс если все в памяти лежит. В кешах проекты частенько держат отрендеренные страницы и денормализированные и отрендеренные данные
если про mssql не уверен, что 1000 будет, меньше скорее всего
но никто не запрещает денормализованные данные и в базе хранить (пусть и в промежуточной), но так никто не делает по соображениям производительности
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
Я думаю где то ближе к тыс если все в памяти лежит. В кешах проекты частенько держат отрендеренные страницы и денормализированные и отрендеренные данные
если про mssql не уверен, что 1000 будет, меньше скорее всего
но никто не запрещает денормализованные данные и в базе хранить (пусть и в промежуточной), но так никто не делает по соображениям производительности
От задачи зависит. Вполне себе можно хранить.
в высоконагруженных проектах не хранят, либо хранят то, что не так часто используется
Alexandr wrote:
а я не согласен, к mssql запрос по индексу - это где-то 150 запросов в секунду, это далеко не всегда достаточно
все крупные проекты имеют C++ кеши отдельно от базы (ссылку не дам, поищите, есть статья об архитектуре наиболее популярных веб-проектов)
Я думаю где то ближе к тыс если все в памяти лежит. В кешах проекты частенько держат отрендеренные страницы и денормализированные и отрендеренные данные
если про mssql не уверен, что 1000 будет, меньше скорее всего
но никто не запрещает денормализованные данные и в базе хранить (пусть и в промежуточной), но так никто не делает по соображениям производительности
От задачи зависит. Вполне себе можно хранить.
в высоконагруженных проектах не хранят, либо хранят то, что не так часто используется
Ну раз все программисты высоконагруженных проектов вам отчитываются, то конечно спорить не буду..