1.1, Аноним (-), 13:08, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Очень хорошо! И то что нужно.
Библиотек теперь бы по больше!
Где можно почитать про протокол? Если вдруг соберусь на написание своей библиотеки.
| |
|
|
3.7, Erley (ok), 13:39, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Отличный от чего? В какую сторону? С чем сравнивалось?
Попробуйте сами сделать что-то подобное. Я такое делал, скажу вам что это challenge :)
| |
|
|
1.3, Crazy Alex (ok), 13:13, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Человек оринетируется на скорость и тащит текстовый SQL-подобный протокол? Пример Mysql его ничему не научил?
| |
|
2.4, Аноним (-), 13:15, 18/10/2011 [^] [^^] [^^^] [ответить]
| +5 +/– |
MySQL такой медленный потому что использует SQL-синтаксис? Внезапно!
| |
|
3.5, Crazy Alex (ok), 13:19, 18/10/2011 [^] [^^] [^^^] [ответить]
| –2 +/– |
Внезапно, при выборке по первичному ключу (аналог key-value) у японцев получалось сильно поднять производительность, введя простой для разбора протокол вместо SQL (см. HandlerSocket).
| |
|
4.8, Аноним (-), 13:40, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Внезапно, при выборке по первичному ключу (аналог key-value) у японцев получалось сильно поднять производительность, введя простой для разбора протокол вместо SQL (см. HandlerSocket).
Что-то мне подсказывает, что производительность упиралась вовсе даже не в разбор SQL. Куда более сложный многомегабайтный PHP-код с кучей инклудов парсится (только парсится, без выполнения) быстрее в разы сотни-другой байт SQL-запроса, который при выполнении так нагружает базу.
| |
|
5.10, Crazy Alex (??), 14:11, 18/10/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
Тут подсказки интуиции не требуются - вся ифнормация есть в открытом виде. Идём на сайт HandlerSocket, читаем, при желании - сравниваем. Суть именно в том, что на простых быстрых запросах (по первичному ключу, например) скорость упирается в разбор SQL.
| |
|
6.11, Аноним (-), 14:17, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Тут подсказки интуиции не требуются - вся ифнормация есть в открытом виде. Идём на сайт HandlerSocket, читаем, при желании - сравниваем. Суть именно в том, что на простых быстрых запросах (по первичному ключу, например) скорость упирается в разбор SQL.
А я не спорю, что MySQL может тормозить на разборе SQL, но в MySQL парсер не эталонный и пример с ним ничего не говорит о скорости работы парсера в сабже.
| |
|
7.15, Crazy Alex (ok), 14:47, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Не знаю, насколько он там не эталонный, но мой опыт подтверждает то, что лукап по хорошо оптимизированной струтуре данных по времени сравним с примитивным разбором строки из 10-15 байт, если блокировки не влезут.
| |
|
8.19, Аноним (-), 15:10, 18/10/2011 [^] [^^] [^^^] [ответить] | +/– | Тут речь идет о миллионе транзакций в секунду Если у mysql что то во что то упи... текст свёрнут, показать | |
|
|
|
7.13, Crazy Alex (ok), 14:43, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Может, прочтёте о чём вообще речь? А речь о том, что в шустром кеше делать SQL-подобный синтаксис - нарываться на тормоза. Или вы и там prepare реализовывать предложите?
| |
|
8.20, Аноним (-), 15:30, 18/10/2011 [^] [^^] [^^^] [ответить] | +/– | facepalm Ещё раз Распарсить много мегабайт чьего-бы то ни было синтаксиса - п... текст свёрнут, показать | |
|
|
10.26, Аноним (-), 16:12, 18/10/2011 [^] [^^] [^^^] [ответить] | +2 +/– | Объясни как ты себе представляешь работу MySQL На примере PHP я представляю при... текст свёрнут, показать | |
|
|
8.21, опроро (?), 15:31, 18/10/2011 [^] [^^] [^^^] [ответить] | +/– | люди реально думают что базы данных данных настолько тупые насколько они умные ... текст свёрнут, показать | |
|
|
6.14, Аноним (-), 14:44, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Оставь. Нельзя (сложно) программиста php убедить в том что ассемблер суммирует быстрее, если он не знает что такое ассемблер. Большинство посетителей, как я понимаю, не сильны в реализации технологий, а видят лишь обложку. И по цвету обложки делают вывод о содержании.
| |
|
|
8.17, Аноним (-), 14:52, 18/10/2011 [^] [^^] [^^^] [ответить] | +/– | Вряд ли Напиши новость что в Debian что-угодно внедрили инновацию и каждую кома... текст свёрнут, показать | |
|
|
6.40, Школьник (ok), 22:16, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Я не могу говорить конкретно за MySQL, однако, мне приходилось работать тестировщиком другой RDBMS(проприетарной). В общем, исходя из того, что я узнал, я сделал такие выводы: производительность падает не только (и, возможно, не столько) на разборе SQL, сколько при таких дальнейших операциях как загрузка метаданных(хотя они часто кэшируются), проверка существования указанных в запросе таблиц, колонок, проверка типов данных, приведение типов данных, составление плана запроса, его оптимизация, преобразование плана в специальное внутреннее представление и т.д. Собственно разбор SQL (синтаксический разбор) тоже играет роль, но явно не первую.
При этом полностью согласен с тем, что использование любого текстового протокола при работе с кэшем абсолютно бессмысленно, ибо в случае с кэшем, а не сложной RDBMS, накладные расходы на разбор текста будут относительно велики.
Прочитал я про HandlerSocket (кстати, спасибо за упоминание о нем). Стало несколько непонятно следующее: для чего в MySQL, который еще с 5ой версии поддерживает prepared statements, это нужно? Особенно учитывая то, что протокол HandlerSocket по сути текстовый (хотя и весьма компактный и простой). Может, кто-то объяснит?
| |
|
|
4.18, Аноним (-), 15:07, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
А что уж сразу не британские ученые?
Тут же прямо сказано SQL подобный синтакисис! теги к ключам очень полезная штука. А те кто не хочет могут юзать свои регекспы.
| |
|
5.22, Crazy Alex (??), 15:42, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Ну и откуда сие недоверие? Методика тестов, патчи, результаты - у них всё открыто. Можно проверить, что и сделала куча народу. А для этого чуда я, пожалуй, побалуюсь на досуге с аналогичным патчем - поглядим, что получится.
Теги к ключам - полезная штука. А генерация SQL-подобного синтаксиса а потом его разбор - вредная. И больше шансов ошибку пропустить, которую иначе компилятор в нормальном языке поймал бы, и дурацкий код генерации запроса, и серверу работы больше, и для инъекций шансы могут появиться, если синтаксис достаточно богатый.
А не верите японцам вы зря - всё открыто и уже опробовано массой народу.
| |
|
4.31, Грустный Анон (?), 16:48, 18/10/2011 [^] [^^] [^^^] [ответить]
| +2 +/– |
Классический пример "слышал звон, да не знаю где он" - основная нагрузка, за исключением выборки данных, приходится на query optimizer & planner, а не на разбор запроса, sql синтаксис тут совершенно не при чём.
| |
|
5.34, Crazy Alex (ok), 17:13, 18/10/2011 [^] [^^] [^^^] [ответить]
| +/– |
Смеётесь? Нет там никакой нагрузки на планировщик при выборке по первичному ключу.
| |
|
|
|
|
1.25, Crazy Alex (??), 16:03, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Тьфу, зря только ругался с неграмотными людьми. Скачал исходники, глянул - никакого SQL-like syntex там нет, а есть набор API-функций и бинарный протокол, как и должно быть. Больше того - вот что пишет разработчик: "The network protocol will be binary. Empirically, too much time is spent in parsing text protocols in memcached and sqlcached."
Чушь об SQL-подобном виде взята вот отсюда:
Among others, Bullet cache implements the following multiple-data instructions which act on the record tags (described semantically in a SQL-like way):
GET RECORDS WHERE tag_key=... AND tag_values IN (...)
DELETE RECORDS WHERE tag_key=... AND tag_values IN (...)
Другими словами, разработчик не стал приводить свои функции API, а показал иллюстрацию в SQL-подобном синтаксисе.
| |
|