Какую структуру данных стоит использовать при выборке по колонке с уникальными данными

«Какую структуру данных стоит использовать при выборке по колонке с уникальными данными» — вопрос из категории Алгоритмы и структуры данных, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для выборки по колонке с уникальными данными оптимально использовать индекс (обычно PRIMARY KEY или UNIQUE). В PHP это реализуется через SQL-запросы с условием WHERE по этой колонке.

Пример с PDO:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
$stmt->execute(['email' => 'user@example.com']);
$user = $stmt->fetch();

Ключевые моменты:

  1. Убедитесь, что колонка имеет UNIQUE constraint
  2. Для быстрого поиска используйте индекс (автоматически создаётся для PRIMARY/UNIQUE)
  3. В PHP лучше использовать подготовленные запросы для безопасности

Для частых выборок в памяти можно использовать ассоциативный массив, где ключ - уникальное значение:

$usersByEmail = []; 
foreach ($users as $user) {
    $usersByEmail[$user['email']] = $user;
}
// Быстрый доступ
$user = $usersByEmail['user@example.com'] ?? null;