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