«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой запрос базы данных GO/SQL значительно медленнее, чем прямой запрос PSQL PSQL?

Почему мой запрос базы данных GO/SQL значительно медленнее, чем прямой запрос PSQL PSQL?

Опубликовано в 2025-02-06
Просматривать:188

Why is my Go database/sql Query Significantly Slower Than a Direct Postgres psql Query?

запрос с использованием базы данных/SQL значительно медленнее, чем напрямую запрос базы данных

. Несмотря на использование идентичных запросов, существует заметное раскрытие производительности между выполнением Запрос непосредственно с использованием утилиты PSQL Postgres и использования пакета базы данных/SQL в приложении GO. Это несоответствие, где запросы, которые принимают миллисекунды в PSQL, принимают десятки миллисекундов в Go, могут быть связаны с конкретными факторами в реализации.

Последующие запросы также сталкиваются с задержками, поскольку соединение из первого запроса не было выпущено обратно в пул. Это означает, что каждый последующий запрос должен создать новое соединение перед выполнением запроса.

]

выпуск соединений обратно в пул

для разрешения несоответствия производительности, убедитесь, что соединения выпускаются обратно в бассейн после каждого запроса. Выпуск соединения включает в себя сохранение первичного возвращаемого значения db.query и впоследствии вызов метода закрытия. Начальная задержка, вызовите Ping в пул соединений сразу после инициализации. Это гарантирует, что по крайней мере одно соединение доступно в пуле.

подготовленные операторы

, хотя простые вопросы без аргументов выполняются, как и ожидалось, запросы с аргументами в базе данных/SQL На самом деле создайте и выполните подготовленные операторы под капотом. Подготовленные операторы предлагают преимущества производительности при выполнении одного и того же запроса несколько раз с различными аргументами.

] адресация дополнительной задержки

Помимо управления соединением и подготовленных операторов, могут быть дополнительные факторы задержки Чтобы рассмотреть:

сетевой задержка:

задержка, вызванная передачей данных по сети между приложением и базой данных. &&&]] рабочая нагрузка сервера базы данных может повлиять на время выполнения запросов. База данных напрямую.

]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3