Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.
Дублирование записей с одним полем:
Дублирование записей с несколькими полями:
#db
👉 @database_info
Дублирование записей с одним полем:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1Дублирование записей с несколькими полями:
SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1 #db
👉 @database_info
👍9
Размер базы данных PostgreSQL
Чтобы получить физический размер файлов (хранилища) базы данных, используем следующий запрос:
Результат будет представлен как число вида 41809016.
Для того, чтобы получить информацию в человекочитаемом виде, используем функцию pg_size_pretty:
В результате получим информацию вида 40 Mb.
#PostgreSQL
👉 @database_info
Чтобы получить физический размер файлов (хранилища) базы данных, используем следующий запрос:
SELECT pg_database_size(current_database());Результат будет представлен как число вида 41809016.
current_database() — функция, которая возвращает имя текущей базы данных. Вместо неё можно ввести имя текстом:SELECT pg_database_size('my_database');Для того, чтобы получить информацию в человекочитаемом виде, используем функцию pg_size_pretty:
SELECT pg_size_pretty(pg_database_size(current_database()));В результате получим информацию вида 40 Mb.
#PostgreSQL
👉 @database_info
👍6
Как хранить сеть дорог в БД для построения маршрута?
И так, формулировка задачи следующая: есть база данных, в ней хранится информация о дорогах, включая координаты, нужно реализовать построение маршрутов из начальной точки к конечной.
Эта статья будет про то, как использовать свой источник данных, и как этот источник данных редактировать так, чтобы GraphHopper вас понял.
https://habr.com/ru/articles/688556/
#db
👉 @database_info
И так, формулировка задачи следующая: есть база данных, в ней хранится информация о дорогах, включая координаты, нужно реализовать построение маршрутов из начальной точки к конечной.
Эта статья будет про то, как использовать свой источник данных, и как этот источник данных редактировать так, чтобы GraphHopper вас понял.
https://habr.com/ru/articles/688556/
#db
👉 @database_info
👍4
Как ускорить базу данных при помощи шардирования
Шардирование было одним из первых механизмов, позволяющих распределять базы данных для повышения их производительности. Последние инновации превратили шардирование в один из лучших механизмов в своем роде.
Сегодня базам данных уделяется особое внимание, так как через них компания управляет своим самым ценным архивом: информацией. Всего 30 лет назад большинство данных хранилось на бумаге, магнитной ленте или каких-либо дисках. Поскольку мы производили и потребляли гораздо меньше данных на душу населения, даже на таких носителях нам удавалось эффективно хранить их, управлять ими и обращаться к ним.
Но сегодня с данными складывается совершенно иная ситуация. Смартфоны распространились повсеместно и превратились в необходимую вещь. Вместе со смартфонами увеличилось количество мобильных приложений, и сегодня через них производятся и потребляются такие объемы данных, какие были просто немыслимы 15 лет назад. В такой ситуации серьезно возрастает нагрузка на кластеры баз данных, поскольку им приходится обрабатывать все более серьезные объемы трафика. Некоторые из топовых веб-сайтов и веб-сервисов обрабатывают миллиарды посещений в неделю.
Rus https://habr.com/ru/companies/timeweb/articles/696784/
Eng https://stackoverflow.blog/2022/03/14/how-sharding-a-database-can-make-it-faster/
#db
👉 @database_info
Шардирование было одним из первых механизмов, позволяющих распределять базы данных для повышения их производительности. Последние инновации превратили шардирование в один из лучших механизмов в своем роде.
Сегодня базам данных уделяется особое внимание, так как через них компания управляет своим самым ценным архивом: информацией. Всего 30 лет назад большинство данных хранилось на бумаге, магнитной ленте или каких-либо дисках. Поскольку мы производили и потребляли гораздо меньше данных на душу населения, даже на таких носителях нам удавалось эффективно хранить их, управлять ими и обращаться к ним.
Но сегодня с данными складывается совершенно иная ситуация. Смартфоны распространились повсеместно и превратились в необходимую вещь. Вместе со смартфонами увеличилось количество мобильных приложений, и сегодня через них производятся и потребляются такие объемы данных, какие были просто немыслимы 15 лет назад. В такой ситуации серьезно возрастает нагрузка на кластеры баз данных, поскольку им приходится обрабатывать все более серьезные объемы трафика. Некоторые из топовых веб-сайтов и веб-сервисов обрабатывают миллиарды посещений в неделю.
Rus https://habr.com/ru/companies/timeweb/articles/696784/
Eng https://stackoverflow.blog/2022/03/14/how-sharding-a-database-can-make-it-faster/
#db
👉 @database_info
👍3
The Internals of PostgreSQL
Полезный ресурс по внутреннему устройству PostgreSQL. Поможет понять, из каких компонентов состоит СУБД, как они устроены под капотом и взаимодействуют друг с другом.
В руководстве описаны внутренние компоненты PostgreSQL: кластеры базы данных, архитектура памяти, обработка запросов и другие. Материал будет полезен как начинающим, так и опытным специалистам, которые хотят разобраться в СУБД изнутри.
http://www.interdb.jp/pg/index.html
#db
👉 @database_info
Полезный ресурс по внутреннему устройству PostgreSQL. Поможет понять, из каких компонентов состоит СУБД, как они устроены под капотом и взаимодействуют друг с другом.
В руководстве описаны внутренние компоненты PostgreSQL: кластеры базы данных, архитектура памяти, обработка запросов и другие. Материал будет полезен как начинающим, так и опытным специалистам, которые хотят разобраться в СУБД изнутри.
http://www.interdb.jp/pg/index.html
#db
👉 @database_info
👍6
Media is too big
VIEW IN TELEGRAM
Введение в SQL. Что такое SELECT, FROM. Операторы управления данными.
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:21:43 - Что нас ждет на интенсиве
00:23:49 - Что такое База Данных?
00:25:43 - Что такое СУБД?
00:29:04 - Правила создания таблиц
00:40:56 - Виды ключей
00:44:04 - Типы операторов в SQL
00:57:10 - Информация о скидках
01:03:41 - Создание Базы Данных
01:14:35 - Создание таблицы
01:30:57 - Повторение того, что мы сделали
01:32:13 - Заполнение таблицы
01:50:11 - Зарезервированные слова
01:51:09 - Создание псевдонима таблицы
01:52:29 - Удаление и добавление столбцов
01:53:50 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:21:43 - Что нас ждет на интенсиве
00:23:49 - Что такое База Данных?
00:25:43 - Что такое СУБД?
00:29:04 - Правила создания таблиц
00:40:56 - Виды ключей
00:44:04 - Типы операторов в SQL
00:57:10 - Информация о скидках
01:03:41 - Создание Базы Данных
01:14:35 - Создание таблицы
01:30:57 - Повторение того, что мы сделали
01:32:13 - Заполнение таблицы
01:50:11 - Зарезервированные слова
01:51:09 - Создание псевдонима таблицы
01:52:29 - Удаление и добавление столбцов
01:53:50 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
👍3❤1
SQL Fiddle
Отличный инструмент для тестирования своих SQL-запросов. Позволяет быстро проверять их прямо в браузере.
Инструмент для простого тестирования, отладки и обмена фрагментами SQL. Добавляете текст в панель, а SQL Fiddle превращает его в скрипт для создания необходимой таблицы. Подойдет как для работы с базами данных, так и для практики навыков SQL.
http://sqlfiddle.com/
#db
👉 @database_info
Отличный инструмент для тестирования своих SQL-запросов. Позволяет быстро проверять их прямо в браузере.
Инструмент для простого тестирования, отладки и обмена фрагментами SQL. Добавляете текст в панель, а SQL Fiddle превращает его в скрипт для создания необходимой таблицы. Подойдет как для работы с базами данных, так и для практики навыков SQL.
http://sqlfiddle.com/
#db
👉 @database_info
👍9
SQLFlow
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
👍8
Media is too big
VIEW IN TELEGRAM
Вывод данных по условиям через WHERE, AND, OR, BETWEEN. Сортировка данных.
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:03:14 - Как будет строиться занятие
00:10:20 - Команда ORDER BY
00:14:16 - Команда LIMIT
00:17:08 - Команда DISTINCT
00:19:37 - Команда WHERE
00:24:18 - Как писать запрос
00:25:35 - Объединение условий
00:39:30 - Простые математические операции
00:48:10 - Подсчет количества
00:53:34 - Подсчет суммы
00:57:25 - Пример задачи
01:00:07 - Информация о скидках
01:07:08 - Пример задачи(продолжение)
01:15:48 - Пример работы функций SUM, AVG, COUNT, MIN, MAX
01:21:19 - Команда HAVING
01:28:49 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:03:14 - Как будет строиться занятие
00:10:20 - Команда ORDER BY
00:14:16 - Команда LIMIT
00:17:08 - Команда DISTINCT
00:19:37 - Команда WHERE
00:24:18 - Как писать запрос
00:25:35 - Объединение условий
00:39:30 - Простые математические операции
00:48:10 - Подсчет количества
00:53:34 - Подсчет суммы
00:57:25 - Пример задачи
01:00:07 - Информация о скидках
01:07:08 - Пример задачи(продолжение)
01:15:48 - Пример работы функций SUM, AVG, COUNT, MIN, MAX
01:21:19 - Команда HAVING
01:28:49 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
👍3❤1
Оператор PIVOT
Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников.
https://habr.com/ru/post/677340/
https://learn.microsoft.com/en-us/archive/blogs/craigfr/the-pivot-operator
#db #sql
👉 @database_info
Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников.
https://habr.com/ru/post/677340/
https://learn.microsoft.com/en-us/archive/blogs/craigfr/the-pivot-operator
#db #sql
👉 @database_info
👍2
High Performance MySQL
Авторы: Silvia Botros, Jeremy Tinley (2022)
Как можно использовать всю мощь MySQL? Благодаря данной книге вы изучите передовые практики для всего от разработки схем, индексов и запросов до настройки вашего сервера, операционной системы и оборудования. Это руководство также учит администраторов баз данных безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки и обеспечения высокой доступности.
Во время чтения книги вы:
✔️Погрузитесь в архитектуру MySQL, включая ключевые факты о механизмах хранения;
✔️Узнаете, как конфигурация сервера работает с оборудованием и варианты развертывания;
✔️Изучите улучшения репликации и высокой доступности MySQL;
✔️Изучите полную оптимизацию стека MySQL от конфигурации на стороне приложения до настройки сервера;
✔️Превратите традиционные задачи управления базами данных в автоматизированные процессы.
#db
👉 @database_info
Авторы: Silvia Botros, Jeremy Tinley (2022)
Как можно использовать всю мощь MySQL? Благодаря данной книге вы изучите передовые практики для всего от разработки схем, индексов и запросов до настройки вашего сервера, операционной системы и оборудования. Это руководство также учит администраторов баз данных безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки и обеспечения высокой доступности.
Во время чтения книги вы:
✔️Погрузитесь в архитектуру MySQL, включая ключевые факты о механизмах хранения;
✔️Узнаете, как конфигурация сервера работает с оборудованием и варианты развертывания;
✔️Изучите улучшения репликации и высокой доступности MySQL;
✔️Изучите полную оптимизацию стека MySQL от конфигурации на стороне приложения до настройки сервера;
✔️Превратите традиционные задачи управления базами данных в автоматизированные процессы.
#db
👉 @database_info
👍5
От 0 до 300 SQL-запросов в месяц: 3 практических совета
https://betterprogramming.pub/from-0-to-300-sql-queries-a-month-my-3-best-tips-788398476e1e
#SQL
👉 @database_info
https://betterprogramming.pub/from-0-to-300-sql-queries-a-month-my-3-best-tips-788398476e1e
#SQL
👉 @database_info
👍2
Базы данных
1. Введение в базы данных. Базы данных.
2. Реляционная модель данных, ER диаграмма. Базы данных
3. Введение в SQL. Базы данных
4. SQL. Практическое занятие. Базы данных
5. SQL (Structure Query Language). Оператор Distinct. Базы данных
7. Транзакции. Базы данных
8. План выполнения запроса. Ограничения целостности. Базы данных
9. Таблицы. Триггеры. Процедуры. Базы данных
10. Масштабирование БД. Базы данных
11. Оптимизация запросов. Базы данных
12. Введение в NoSQL. Базы данных
13. Что такое ORM? Почему стоит использовать ORM? Базы данных
Полный playlist на youtube
#db
👉 @database_info
1. Введение в базы данных. Базы данных.
2. Реляционная модель данных, ER диаграмма. Базы данных
3. Введение в SQL. Базы данных
4. SQL. Практическое занятие. Базы данных
5. SQL (Structure Query Language). Оператор Distinct. Базы данных
7. Транзакции. Базы данных
8. План выполнения запроса. Ограничения целостности. Базы данных
9. Таблицы. Триггеры. Процедуры. Базы данных
10. Масштабирование БД. Базы данных
11. Оптимизация запросов. Базы данных
12. Введение в NoSQL. Базы данных
13. Что такое ORM? Почему стоит использовать ORM? Базы данных
Полный playlist на youtube
#db
👉 @database_info
👍2❤1
Простой скрипт для резервного копирования всех баз данных SQL Server
Иногда вещи, которые кажутся сложными, оказываются гораздо проще, чем кажется, и в этом заключается сила использования языка T-SQL для решения повторяющихся задач. Одной из таких задач может быть необходимость резервного копирования всех баз данных на сервере. Это не так уж сложно, если у вас несколько баз данных, но я видел несколько серверов, где на одном экземпляре SQL Server было 100+ баз данных. Для резервного копирования баз данных можно использовать SQL Server Management Studio или даже использовать Maintenance Plans, но использование T-SQL - гораздо более простой и быстрый подход.
https://www.mssqltips.com/sqlservertip/1070/simple-noscript-to-backup-all-sql-server-databases/
#db
👉 @database_info
Иногда вещи, которые кажутся сложными, оказываются гораздо проще, чем кажется, и в этом заключается сила использования языка T-SQL для решения повторяющихся задач. Одной из таких задач может быть необходимость резервного копирования всех баз данных на сервере. Это не так уж сложно, если у вас несколько баз данных, но я видел несколько серверов, где на одном экземпляре SQL Server было 100+ баз данных. Для резервного копирования баз данных можно использовать SQL Server Management Studio или даже использовать Maintenance Plans, но использование T-SQL - гораздо более простой и быстрый подход.
DECLARE @name NVARCHAR(256) -- database name
DECLARE @path NVARCHAR(512) -- path for backup files
DECLARE @fileName NVARCHAR(512) -- filename for backup
DECLARE @fileDate NVARCHAR(40) -- used for file name
-- specify database backup directory
SET @path = 'C:\test\'
-- specify filename format
SELECT @fileDate = CONVERT(NVARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR READ_ONLY FOR
SELECT name
FROM master.sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases
AND state = 0 -- database is online
AND is_in_standby = 0 -- database is not read only for log shipping
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
https://www.mssqltips.com/sqlservertip/1070/simple-noscript-to-backup-all-sql-server-databases/
#db
👉 @database_info
👍5
Скрытые ошибки SQL, допускаемые опытными аналитиками данных
Написание неправильного синтаксиса SQL не так страшно, потому что вы сразу же узнаете об этом, исправите то, что упустили, и вуаля, как ни в чем не бывало. А вот что действительно плохо, так это когда код выполняется и выдает результат, но не правильный (и не безумно неправильный, иначе вы могли бы заметить).
Чтобы продемонстрировать это, представьте, что у вас есть две таблицы, первая содержит клиентов вашего сайта, а вторая - заказы, сделанные на сайте.
https://eisultan.medium.com/sql-hidden-mistakes-made-by-experienced-data-analysts-part-1-9ea6ffdf95a5
#db
👉 @database_info
Написание неправильного синтаксиса SQL не так страшно, потому что вы сразу же узнаете об этом, исправите то, что упустили, и вуаля, как ни в чем не бывало. А вот что действительно плохо, так это когда код выполняется и выдает результат, но не правильный (и не безумно неправильный, иначе вы могли бы заметить).
Чтобы продемонстрировать это, представьте, что у вас есть две таблицы, первая содержит клиентов вашего сайта, а вторая - заказы, сделанные на сайте.
https://eisultan.medium.com/sql-hidden-mistakes-made-by-experienced-data-analysts-part-1-9ea6ffdf95a5
#db
👉 @database_info
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
VisiData - это интерактивный мультиинструмент для работы с табличными данными. Он сочетает в себе наглядность электронных таблиц, эффективность терминала и мощь Python, превращаясь в легкую утилиту, способную с легкостью обрабатывать миллионы строк.
https://www.visidata.org/
https://github.com/saulpw/visidata
#db
👉 @database_info
https://www.visidata.org/
https://github.com/saulpw/visidata
#db
👉 @database_info
👍2❤1
PostgreSQL и временные таблицы
Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.
Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4).
Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа 1С или ее открытый и бесплатный аналог - платформа lsFusion.
В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.
https://habr.com/ru/articles/754476/
#db
👉 @database_info
Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.
Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4).
Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа 1С или ее открытый и бесплатный аналог - платформа lsFusion.
В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.
https://habr.com/ru/articles/754476/
#db
👉 @database_info
👍3
Повышение эффективности SQL-запросов, советы по настройке
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
👍3
Новое в SQL Server 2022: изменение стратегии прироста журналов транзакций
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
👍1