← Каталог
Работа с базами данных из Ruby — Пул соединений
Фрагмент из «Работа с базами данных из Ruby»: Пул соединений.
Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Разбор:` и задаёт контекст выполнения.
- Ключевые элементы блока: `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