More database/sql fixes
This commit is contained in:
parent
e1cf5d8de3
commit
dab4076625
2 changed files with 17 additions and 17 deletions
|
@ -8,14 +8,14 @@ import (
|
|||
_ "github.com/jackc/pgx/v4/stdlib"
|
||||
)
|
||||
|
||||
func IsItAliveQuestionMark() {
|
||||
func IsItAliveQuestionMark(ctx context.Context) {
|
||||
db, err := sql.Open("pgx", "postgres://pgx_md5:secret@localhost:5432/pgx_test")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
if err := db.PingContext(context.Background()); err != nil {
|
||||
if err := db.PingContext(ctx); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
database/sql
|
||||
Лекция 7
|
||||
Лекция 9
|
||||
|
||||
Синельников Илья
|
||||
|
||||
|
@ -12,8 +12,8 @@ database/sql
|
|||
|
||||
- абстракция для работы с SQL базами данных
|
||||
- набор интерфейсов для написания драйверов
|
||||
- многие драйверы имеют "расширенный" функционал
|
||||
- не умеет некоторые продвинутые возможности (например, батчинг)
|
||||
- нет продвинутых возможностей (например, батчинг)
|
||||
- драйверы часто имеют расширенный API
|
||||
|
||||
.code sql/driver.go /^type Driver/,/^}/
|
||||
.code sql/driver.go /^type QueryerContext/,/^}/
|
||||
|
@ -29,12 +29,12 @@ database/sql
|
|||
* Основные сущности
|
||||
|
||||
- DB - connection pool к базе
|
||||
- Rows - результаты запроса
|
||||
- Rows - результат запроса
|
||||
- Row - одна строка из результата запроса
|
||||
- Null* - типы для работы с Null значениями
|
||||
- Tx - транзакция
|
||||
- Stmt - подготовленый запрос
|
||||
- Conn - одно подключение к базе
|
||||
- Stmt - подготовленый запрос
|
||||
|
||||
* Проверка доступности
|
||||
|
||||
|
@ -78,11 +78,11 @@ database/sql
|
|||
* Null в результатах
|
||||
.code nulls/rows.go /^func Results/,/^}/
|
||||
|
||||
* Одно подключение
|
||||
* Работа с конкретным подключением к БД
|
||||
|
||||
.code conn/conn.go /^func Conn/,/^}/
|
||||
|
||||
* Транзакции
|
||||
* Работа с транзакциями
|
||||
|
||||
.code tx/tx.go /^func Begin/,/^}/
|
||||
|
||||
|
@ -95,6 +95,7 @@ database/sql
|
|||
Минусы:
|
||||
- удобство
|
||||
- производительность
|
||||
- несовместимы с некоторыми режимами работы пулеров коннектов
|
||||
|
||||
* Prepare
|
||||
|
||||
|
@ -117,32 +118,31 @@ database/sql
|
|||
|
||||
* Основные типы граблей
|
||||
|
||||
- исчерпание ресурсов
|
||||
- неосвобождение ресурсов
|
||||
- дедлоки
|
||||
- комбинация первого и второго
|
||||
- нюансы каждого отдельного драйвера
|
||||
|
||||
* Context
|
||||
* Context - вечные запросы
|
||||
|
||||
.code resources/ctx.go /^func NoContext/,/^}/
|
||||
|
||||
* Запросы - исчерпание ресурсов
|
||||
* Запросы - неосвобождение ресурсов
|
||||
|
||||
.code resources/rows.go /^func RowsExhaust/,/^}/
|
||||
|
||||
* Коннекты - исчерпание ресурсов
|
||||
* Коннекты - неосвобождение ресурсов
|
||||
|
||||
.code resources/conn.go /^func ConnExhaust/,/^}/
|
||||
|
||||
* Транзакции - исчерпание ресурсов
|
||||
* Транзакции - неосвобождение ресурсов
|
||||
|
||||
.code resources/tx.go /^func TxExhaust/,/^}/
|
||||
|
||||
* Транзакции - deadlock
|
||||
* Транзакции - исчерпание ресурсов приводящее к deadlock
|
||||
|
||||
.code resources/tx.go /^func TxDeadlock/,/^}/
|
||||
|
||||
* Запросы - deadlock
|
||||
* Запросы - исчерпание ресурсов приводящее к deadlock
|
||||
|
||||
.code resources/queries.go /^func QueryDeadlock/,/^}/
|
||||
|
||||
|
|
Loading…
Reference in a new issue