Базы данных классифицируются в первую очередь по методу организации данных, способу их поиска и хранения, производительности при доступе к данным и способности распределять данные по нескольким узлам для повышения доступности и устойчивости
#db
👉 @database_info
#db
👉 @database_info
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Будьте осторожны при подсчете строк из outer join
Это происходит потому, что
Убедитесь, что
#db
👉 @database_info
COUNT (*) => строки в группе; всегда хотя бы одна
COUNT ( inner_tab_col ) => строки из внутренней таблицы; ноль, если нет совпадений.Это происходит потому, что
COUNT ( col ) добавляет только ненулевые значения.Убедитесь, что
inner_tab_col является обязательным!#db
👉 @database_info
👍4
Самоучитель по SQL
Наш самоучитель по SQL научит вас использовать SQL в: MySQL, SQL Server, MS Access, Oracle, Sybase, Informix, Postgres и других системах баз данных.
https://www.w3schools.com/sql/default.asp
#db #sql
👉 @database_info
Наш самоучитель по SQL научит вас использовать SQL в: MySQL, SQL Server, MS Access, Oracle, Sybase, Informix, Postgres и других системах баз данных.
https://www.w3schools.com/sql/default.asp
#db #sql
👉 @database_info
👍4😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Получение значений из строк N до/после текущей строки с помощью 2-го параметра LAG/LEAD
например.
За пределами first/last row => возвращаем
Используйте 3-й параметр, чтобы вернуть значение по умолчанию
#db #sql
👉 @database_info
например.
LAG ( ..., 2 ) OVER ( ORDER BY ... ) = 2 before
LEAD ( ..., 3 ) OVER ( ORDER BY ... ) = 3 afterЗа пределами first/last row => возвращаем
nullИспользуйте 3-й параметр, чтобы вернуть значение по умолчанию
#db #sql
👉 @database_info
👍5🥰2
Находим первое, N-ое или последнее значение в SQL
Условие
Будьте осторожны с использованием значения по умолчанию - оно останавливает
#db #sql
👉 @database_info
FIRST_VALUE ( val ) - Start val
NTH_VALUE ( val, N ) - Val at row N
LAST_VALUE ( val ) - Final valУсловие
OVER определяет порядокБудьте осторожны с использованием значения по умолчанию - оно останавливает
NTH и LAST на текущем значении => неожиданные результаты#db #sql
👉 @database_info
👍4🥰3❤2
Media is too big
VIEW IN TELEGRAM
Практические примеры по оптимизации запросов в PostgeSQL
Иван Чувашов
источник
#db #sql #postgesql
👉 @database_info
Иван Чувашов
источник
#db #sql #postgesql
👉 @database_info
👍4
Облачные базы данных: Шпаргалка
В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значение и в то же время сложен. Сейчас облако предлагает больше возможностей для структурированных, полуструктурированных и неструктурированных баз данных, чем когда-либо. Эта шпаргалка поможет выбрать наиболее подходящую для ваших нужд.
Структурированные базы данных📌
Структурированные базы данных организуют данные в предопределенные схемы и модели.
Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.
Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.
Преимущества:
- Эффективные SQL-запросы
- Возможность применения ограничений и валидации
- Последовательность там, где это необходимо
Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика
Полуструктурированные базы данных📌
Полуструктурированные базы данных обеспечивают гибкость, храня данные без соблюдения формальной схемы. Данные часто хранятся в виде JSON или других гибких форматов.
Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.
Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах
Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT
Неструктурированные базы данных📌
Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.
Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость
Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.
#db
👉 @database_info
В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значение и в то же время сложен. Сейчас облако предлагает больше возможностей для структурированных, полуструктурированных и неструктурированных баз данных, чем когда-либо. Эта шпаргалка поможет выбрать наиболее подходящую для ваших нужд.
Структурированные базы данных📌
Структурированные базы данных организуют данные в предопределенные схемы и модели.
Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.
Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.
Преимущества:
- Эффективные SQL-запросы
- Возможность применения ограничений и валидации
- Последовательность там, где это необходимо
Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика
Полуструктурированные базы данных📌
Полуструктурированные базы данных обеспечивают гибкость, храня данные без соблюдения формальной схемы. Данные часто хранятся в виде JSON или других гибких форматов.
Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.
Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах
Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT
Неструктурированные базы данных📌
Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.
Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость
Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.
#db
👉 @database_info
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
SQL
С помощью всего нескольких базовых команд можно решить 80% повседневных задач, связанных с данными.
Сосредоточьтесь на понимании JOIN, SELECT, UPDATE, DELETE и некоторых других фундаментальных команд.
#db
👉 @database_info
С помощью всего нескольких базовых команд можно решить 80% повседневных задач, связанных с данными.
Сосредоточьтесь на понимании JOIN, SELECT, UPDATE, DELETE и некоторых других фундаментальных команд.
#db
👉 @database_info
❤3
Преобразование файлов CSV в базу данных SQLite
Конвертируйте файлы CSV в базу данных SQLite. Просмотр и публикация базы данных SQLite с помощью Datasette.
Базовое использование:
В результате будет создана новая база данных SQLite под названием mydatabase.db с одной таблицей myfile, содержащей содержимое CSV.
Вы можете предоставить несколько CSV-файлов:
База данных bundle.db будет содержать две таблицы, one и two.
Это означает, что вы можете использовать wildcards:
Если вы укажете путь к одной или нескольким директориям, скрипт будет рекурсивно искать CSV-файлы в этих директориях и создавать таблицы для каждого из них.
https://github.com/simonw/csvs-to-sqlite
#db
👉 @database_info
Конвертируйте файлы CSV в базу данных SQLite. Просмотр и публикация базы данных SQLite с помощью Datasette.
Базовое использование:
csvs-to-sqlite myfile.csv mydatabase.dbВ результате будет создана новая база данных SQLite под названием mydatabase.db с одной таблицей myfile, содержащей содержимое CSV.
Вы можете предоставить несколько CSV-файлов:
csvs-to-sqlite one.csv two.csv bundle.dbБаза данных bundle.db будет содержать две таблицы, one и two.
Это означает, что вы можете использовать wildcards:
csvs-to-sqlite ~/Downloads/*.csv my-downloads.dbЕсли вы укажете путь к одной или нескольким директориям, скрипт будет рекурсивно искать CSV-файлы в этих директориях и создавать таблицы для каждого из них.
csvs-to-sqlite ~/path/to/directory all-my-csvs.dbhttps://github.com/simonw/csvs-to-sqlite
#db
👉 @database_info
GitHub
GitHub - simonw/csvs-to-sqlite: Convert CSV files into a SQLite database
Convert CSV files into a SQLite database. Contribute to simonw/csvs-to-sqlite development by creating an account on GitHub.
👍3🎉1
SQL Server 2019
Файловые группы в SQL Server 2019
FILESTREAM в SQL Server 2019
Оптимизированные под память файловые группы в SQL Server 2019
источник
#db
👉 @database_info
Файловые группы в SQL Server 2019
FILESTREAM в SQL Server 2019
Оптимизированные под память файловые группы в SQL Server 2019
источник
#db
👉 @database_info
👍3
Dbchaos
Проведите стресс-тестирование базы данных с помощью заранее заданных запросов. Генерируйте исходные данные и события статически или с помощью GPT.
https://github.com/adaptive-scale/dbchaos
#db
👉 @database_info
Проведите стресс-тестирование базы данных с помощью заранее заданных запросов. Генерируйте исходные данные и события статически или с помощью GPT.
https://github.com/adaptive-scale/dbchaos
#db
👉 @database_info
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram
Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.
https://dbdiagram.io/home
👉 @database_info
Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.
https://dbdiagram.io/home
👉 @database_info
👍9👏2
7 обязательных стратегий для масштабирования вашей базы данных.
1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.
2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа.
3 - Денормализация:
Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов.
4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища.
5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных.
6 - Репликация:
Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений.
7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений.
#db
👉 @database_info
1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.
2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа.
3 - Денормализация:
Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов.
4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища.
5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных.
6 - Репликация:
Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений.
7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений.
#db
👉 @database_info
🎉5👍4❤1
Antares SQL Client
Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).
Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.
https://github.com/antares-sql/antares
#db
👉 @database_info
Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).
Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.
https://github.com/antares-sql/antares
#db
👉 @database_info
👍3
Anyquer
Это CLI-инструмент для выполнения SQL-запросов к любому источнику данных, будь то файл, API, логи или локальное приложение. Ознакомьтесь с интеграциями, чтобы узнать обо всех возможностях.
Поддерживает запросы JSON, CSV, Parquet, Airtable, Google Sheets, баз данных Notion, Gmail и многого другого. Он использует SQLite под капотом и может выступать в качестве сервера MySQL, чтобы вы могли подключать инструменты BI.
https://anyquery.dev/
#db
👉 @database_info
Это CLI-инструмент для выполнения SQL-запросов к любому источнику данных, будь то файл, API, логи или локальное приложение. Ознакомьтесь с интеграциями, чтобы узнать обо всех возможностях.
Поддерживает запросы JSON, CSV, Parquet, Airtable, Google Sheets, баз данных Notion, Gmail и многого другого. Он использует SQLite под капотом и может выступать в качестве сервера MySQL, чтобы вы могли подключать инструменты BI.
https://anyquery.dev/
#db
👉 @database_info
👍5❤1👎1
И/или
Условия в
К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
#db
👉 @database_info
Условия в
WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
#db
👉 @database_info
👍4