Найти в Дзене
Внимательность с SQL - один запрос - а результаты разные
Есть два идентичных запроса. НО!!!! Они выдают разные результаты! Загадка для Вас: почему? SELECT n.* , c.name as name_category FROM news n LEFT JOIN news_category c on n.id_category = c.id_category WHERE true ORDER BY d_news DESC LIMIT 0 OFFSET 5 SELECT n.*, c.name FROM news n LEFT JOIN news_category c ON n...
1 месяц назад
DEFAULT как секретное оружие для оптимизации больших таблиц
Когда мы работаем с таблицами, содержащими миллионы и даже миллиарды записей, каждый байт на счету. В таких условиях хранение NULL-значений может становиться неожиданно дорогой операцией. Использование значения по умолчанию (DEFAULT) для замены NULL — это простая, но чрезвычайно эффективная стратегия. Чтобы понять преимущество DEFAULT, нужно разобраться, как PostgreSQL хранит данные и NULL-значения. Ключевой вывод: NULL — это не «отсутствие данных». Это специальный маркер, на хранение которого тратится место (1 бит на столбец + выравнивание)...
2 месяца назад
Правда ли, что запросы с LIMIT 1 выполняются быстрее?
Да, в большинстве случаев запросы с LIMIT 1 действительно выполняются быстрее, но есть важные нюансы. -- База останавливает поиск после первой найденной записи SELECT * FROM users WHERE email = 'test@example.com' LIMIT 1; -- Передается только одна запись вместо всех подходящих SELECT * FROM products WHERE category = 'electronics' LIMIT 1; -- Если есть индекс по created_at, запрос очень быстрый SELECT * FROM orders ORDER BY created_at DESC LIMIT 1; Когда LIMIT 1 НЕ помогает: -- Полное сканирование...
3 месяца назад
PHP Функции копирования папок "один в один"
Вот функция для копирования всех файлов из папки А в папку Б: function copyAllFiles($sourceDir, $destinationDir) { // Проверяем существование исходной папки if (!is_dir($sourceDir)) { throw new Exception("Исходная папка не существует: " . $sourceDir); } // Создаем целевую папку если не существует if (!is_dir($destinationDir)) { if (!mkdir($destinationDir, 0755, true)) { throw new Exception("Не удалось создать целевую папку: " . $destinationDir); } } // Получаем все файлы из исходной папки $files = array_diff(scandir($sourceDir), ['...
5 месяцев назад
PHP скрипт для создания дампов таблиц PostgreSQL с архивацией
Вот полный скрипт, который создает дампы всех таблиц указанной базы данных PostgreSQL в формате SQL (с INSERT-запросами), затем архивирует каждый дамп и удаляет исходный файл: <?php // Параметры подключения к PostgreSQL $db_host = 'localhost'; $db_port = '5432'; $db_name = 'ваша_база_данных'; $db_user = 'ваш_пользователь'; $db_pass = 'ваш_пароль'; // Директория для сохранения дампов $backup_dir = __DIR__ . '/pg_backups/'; if (!file_exists($backup_dir)) { mkdir($backup_dir, 0755, true); } // Подключение...
5 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала