---
title: "select() - припинити завантаження зайвих колонок"
url: https://laravelukraine.com/blog/select-pripiniti-zavantazennia-zaivix-kolonok
date: 2026-03-18
---

# select() - припинити завантаження зайвих колонок

Завантаження повного рядка користувача з 20 колонками. Потрібні тільки ім'я та email.

База даних надсилає всі дані. Пам'ять витрачається. Запит повільніший.

**Рішення:**

Використовувати `select()` щоб вказати точні колонки. Швидші запити, менше пам'яті.

**Важливо:**

Завжди включай первинний ключ (id) щоб зв'язки працювали.

**Просунуте:**

Використовувати `addSelect()` щоб додати колонки до існуючого select.

Порада: Особливо важливо для таблиць з TEXT/BLOB колонками або таблиць з 20+ колонками.

```php
// ПОГАНО: Завантажує всі колонки
$users = User::all();
foreach ($users as $user) {
    echo $user->name; // Інші 18 колонок витрачені даремно
}

// ДОБРЕ: Тільки те що потрібно
$users = User::select('id', 'name', 'email')->get();

// Додавати колонки динамічно
$query = User::select('id', 'name');
if ($needEmail) {
    $query->addSelect('email');
}

// Зі зв'язками - потрібні зовнішні ключі
$posts = Post::select('id', 'title', 'user_id')
    ->with('author:id,name')
    ->get();

// Агрегація без завантаження моделей
$totalViews = Post::sum('views');
$avgRating = Post::avg('rating');
$maxPrice = Product::max('price');
```
