Текущий протокол документирован здесь: http://www.postgresql.org/docs/9.4/static/protocol.html
Выясняется, что он недостаточно полон, поэтому клиенты становятся более сложными, медленнее и т.д.
Вот список возможностей, которые часто встречаются в обсуждениях.
Текущий протокол поддерживает текстовую и бинарную передачу. Оказывается, в текстовом режиме backend не нуждается в знании точного типа данных. В большинстве случаев он легко может вывести его. Бинарный режим обычно быстрее, однако при потреблении бинарных данных backend считает, что тип данных точно известен и не рассматривает преобразования.
Было бы здорово иметь возможность передавать значение в бинарном формате (для эффективности), но при этом заставлять backend выводить правильный тип данных для него.
Кевин Уоттен: моя самая большая просьба всегда заключается в том, чтобы относиться к бинарным типам как если бы клиент «знает» как с ними работать. Есть множество случаев с текстовым форматом, когда сервер будет принуждать столбцы к наиболее корректному типу, а это не происходит для бинарных запросов; он просто сообщает, что у вас неверный тип.И то, и другое — возможность переключиться на «предпочтение бинарного формата» в протоколе. Так что когда я делаю запрос без привязки, я могу получить результаты в бинарном формате. В настоящее время можно получать их только в текстовом формате. Это имеет несколько последствий. Во-первых, скорость, вы всегда должны связываться перед запросом, чтобы получить бинарные результаты. Во-вторых, множественные SQL-запросы в одном запросе, что невозможно сделать в привязанных запросах.### Нечеткие семантики чисел в текстовом режиме
В текстовом режиме числа и денежные типы передаются с неизвестным десятичным разделителем. Это затрудняет декодирование значения, так как это зависит от локали.
См.: https://github.com/pgjdbc/pgjdbc/pull/439
Подготовленное заявление сервера может стать недействительным из-за изменения структуры таблицы, типа колонки и т. д. Это приводит к сообщению "ваши подготовленные заявления больше не действительны". Это не очень приятно.
См.: https://github.com/pgjdbc/pgjdbc/pull/451
Это неприятно.
insert 1
, select 10
и т.д.)
Наличие бинарной информации могло бы облегчить парсинг данных.set "application_name"=...
и т.д.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )