Ответ
Вставка (INSERT) обычно дороже выборки (SELECT), так как требует:
- Проверки ограничений (constraints)
- Выделения места в памяти/на диске
- Обновления индексов
- Возможных блокировок
Пример с бенчмарком:
func BenchmarkInsert(b *testing.B) {
db := setupDB()
defer db.Close()
b.ResetTimer()
for i := 0; i < b.N; i++ {
db.Exec("INSERT INTO users(name) VALUES($1)", "test")
}
}
func BenchmarkSelect(b *testing.B) {
db := setupDB()
defer db.Close()
b.ResetTimer()
for i := 0; i < b.N; i++ {
db.Query("SELECT * FROM users LIMIT 1")
}
}
Выборка будет быстрее, особенно при наличии индексов. Однако стоимость зависит от структуры данных, индексов и объема информации.