Код IT
← Каталог

Работа с базами данных из Ruby — Пул соединений

Фрагмент из «Работа с базами данных из Ruby»: Пул соединений.

Ruby main.rb

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Разбор:` и задаёт контекст выполнения.
- Ключевые элементы блока: `SELECT`, они определяют основную логику примера.
- По шагам код выполняется так: `Разбор:` -> `- Фрагмент показывает конкретный сценарий, который стартует со строк` -> `- Ключевые элементы блока: `SELECT`, они определяют основную логику ` -> `- По шагам код выполняется так: `client = Mysql2::Client.new(host: '`.
- Для производительности важны индексы по условиям выборки, проверка плана выполнения и контроль N+1 при связях.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

require 'connection_pool'
require 'pg'

pool = ConnectionPool.new(size: 5, timeout: 5) do
  PG.connect(dbname: 'myapp')
end

pool.with_connection do |conn|
  conn.exec('SELECT 1')
end

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Разбор:` и задаёт контекст выполнения.
- Ключевые элементы блока: `SELECT`, они определяют основную логику примера.
- По шагам код выполняется так: `Разбор:` -> `- Фрагмент показывает конкретный сценарий, который стартует со строк` -> `- Ключевые элементы блока: `SELECT`, они определяют основную логику ` -> `- По шагам код выполняется так: `client = Mysql2::Client.new(host: '`.
- Для производительности важны индексы по условиям выборки, проверка плана выполнения и контроль N+1 при связях.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

require 'connection_pool'
require 'pg'

pool = ConnectionPool.new(size: 5, timeout: 5) do
  PG.connect(dbname: 'myapp')
end

pool.with_connection do |conn|
  conn.exec('SELECT 1')
end