Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.21K subscribers
566 photos
468 videos
19 files
545 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
Возможности SQLite, которые вы могли пропустить

Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.

Частичные индексы (Partial Indexes)
При построении индекса можно указать условие попадания строки в индекс, к примеру, одна из колонок не пустая, а другая равна заданному значению.

create index idx_partial on tab1(a, b) where a is not null and b = 5;
select * from tab1 where a is not null and b = 5; --> search table tab1 using index


Индексы на выражение (Indexes On Expressions)
Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.

create index idx_expression on tab1(a + b);
select * from tab1 where a + b > 10; --> search table tab1 using index ...
select * from tab1 where b + a > 10; --> scan table


https://habr.com/ru/articles/528882/

#db

👉 @database_info
👍4
Использование составных триггеров (compound triggers) Oracle

Перед нами стоят задачи

1- при обновлении поля orders.discount пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;

2 - при изменении orders_detail.price и(или) orders_detail.qty пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;

3- orders_detail.sum_order считается по формуле: orders_detail.sum_order = orders_detail.price * orders_detail.qty * (1- orders.discount/100).

При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.

https://habr.com/ru/articles/748422/

#db

👉 @database_info
👍2
Шпаргалка по PostgreSQL

Содержит общие команды, которые позволят вам быстро и эффективно работать с PostgreSQL.

https://bookflow.ru/shpargalka-po-postgresql/

#db

👉 @database_info
👍5
SQL. Базовый курс

№1. Установка PostgreSQL, создаем схему, таблицу и импортируем данные из CSV
№2. Простые операции, SELECT
№3. Типы данных
№4. Импорт и экспорт данных
№5. Группировка
№6. Математические операции
№7. CASE
№8. Дополнения к урокам 1-7
№9. Повторение изученного
№10. Подзапросы
№11. CTE
№12. Оконные функции. Ранг, ранжирование (ranking)

Все видео доступны на youtube

#db

👉 @database_info
👍5
Оптимизация данных в MS SQL

Одним из методов для оптимизации обработки, хранения и администрирования данных в базе данных и кубах MS SQL — это процесс создании партицирования данных.

Partitioning (партицирование или по-другому секционирование) — это разбиение таблицы на несколько частей, а эти части на одну или несколько файловых групп. Партицирование необходимо для целей ускорения доступа чтения или изменения данных и администрирования. Так как выровненный индекс по таблице будет содержаться в каждой условно своей секции, то при чтении или изменении данных будет обращение к конкретной секции и конкретному индексу в этой секции.

https://habr.com/ru/articles/705656/

#db

👉 @database_info
👍2
SQL Tutorial - Full Database Course for Beginners

⌨️ (0:00) Introduction
⌨️ (2:36) What is a Database?
⌨️ (23:10) Tables & Keys
⌨️ (43:31) SQL Basics
⌨️ (52:26) MySQL Windows Installation
⌨️ (1:01:59) MySQL Mac Installation
⌨️ (1:15:49) Creating Tables
⌨️ (1:31:05) Inserting Data
⌨️ (1:38:17) Constraints
⌨️ (1:48:11) Update & Delete
⌨️ (1:56:11) Basic Queries
⌨️ (2:08:37) Company Database Intro
⌨️ (2:14:05) Creating Company Database
⌨️ (2:30:27 ) More Basic Queries
⌨️ (2:26:24) Functions
⌨️ (2:45:13) Wildcards
⌨️ (2:53:53) Union
⌨️ (3:01:36) Joins
⌨️ (3:11:49) Nested Queries
⌨️ (3:21:52) On Delete
⌨️ (3:30:05) Triggers
⌨️ (3:42:12) ER Diagrams Intro
⌨️ (3:55:53) Designing an ER Diagram
⌨️ (4:08:34) Converting ER Diagrams to Schemas

https://www.youtube.com/watch?app=desktop&v=HXV3zeQKqGY


#db

👉 @database_info
👍3
Тестирование на проникновение MSSQL

Эта шпаргалка создана специально для специалистов Red Team и специалистов по тестированию на проникновение. Она составлена таким образом, чтобы новички могли понять основы, а профессионалы - отточить свои навыки с помощью расширенных возможностей. Существует множество способов выполнения всех перечисленных задач, поэтому мы составили этот список на основе нашего опыта.

https://github.com/Ignitetechnologies/MSSQL-Pentest-Cheatsheet

#db

👉 @database_info
👍4
Media is too big
VIEW IN TELEGRAM
MongoDB. Полный курс

MongoDB - документно-ориентированная, NoSQL база, используемая для хранения больших объемов информации. Основная особенность базы - это представление данных в виде документов, структура которых напоминает JSON. Благодаря такому подходу MongoDB работает быстрее, обладает лучшей масштабируемость и ее легче использовать. Весь курс можно разбить на 2 основные части. В первой, мы разберём особенности работы с MongoDB, ключевые команды взаимодействия с базой и коллекцией. Команды поиска, сортировки, удаления и редактирования элементов. Во второй, используя Node.js, Express и библиотеку mongoose создадим свой API поддерживающий весь стэк CRUD операций.

0:00 - Введение (Introduction)
2:11 - Основные понятия (Basic Concepts)
9:15 - Установка инструментов (Installing Tools)
14:39 - Использование MongoDB Compass и Shell (Using MongoDB Compass & Shell)
20:04 - Добавление новых данных (Adding New Documents)
25:50 - Поиск документов (Finding Documents)
32:49 - Лимит и сортировка данных (Limiting & Sorting Data)
40:07 - Операторы и составные запросы (Operators & Complex Queries)
47:54 - Запросы вложенных документов (Querying Nested Documents)
53:55 - Удаление и обновление документов (Deleting & Updating Documents)
1:00:22 - Сложное обновление документов (Complex Updating Documents)
1:06:48 - Полезные методы и операторы (Useful Methods & Operators)
1:14:19 - Управление базами и коллекциями (Managing DBs & Collections)
1:21:06 - Создание сервера, подключение к БД (Creating Server & Connecting To MongoDB)
1:29:21 - Курсоры и получение данных (Cursors & Fetching Data)
1:35:09 - Чтение и удаление документа (Fetching & Removing Document)
1:40:51 - Создание и обновление документа (Creating & Updating Document)
1:47:28 - Интеграция mongoose (Mongoose Integration. Part I)
1:57:41 - Интеграция mongoose (Mongoose Integration. Part II)
2:04:43 - MVC и Роутер (MVC Pattern & Router)
2:12:58 - Облачная база данных MongoDB Atlas (MongoDB Atlas)

истрчник

#db

👉 @database_info
👍2
Переход на PgCat — прокси-сервер Postgres следующего поколения

PgCat  —  это open source прокси-сервер Postgresql, в развитии которого мы участвуем и который используем на продакшене. Функционал PgCat для кластеров Postgresql: пул соединений, балансировка нагрузки, отработка отказа реплики.

В Instacart мы применяем Postgresql почти для всех задач баз данных: эффективным кешированием, индексированием, оптимизацией запросов и вертикальным масштабированием экземпляров выжимаем из одного экземпляра Postgres немало производительности. Все это отличные стратегии, но с ними далеко не уедешь. Не ограничиваясь одним экземпляром за счет добавления реплик чтения или горизонтального сегментирования БД, мы в обоих случаях увеличиваем сложность.

https://tech.instacart.com/adopting-pgcat-a-nextgen-postgres-proxy-3cf284e68c2f

#db

👉 @database_info
👍4
Высокодоступный MySQL на конвейере

Что нужно автоматизировать в управляемой базе данных? Какие нас ждут проблемы эксплуатации MySQL в облаках? Разберём существующие решения, позволяющие обеспечивать эффективную конфигурацию под высокую доступность и высокие нагрузки, а также их недостатки и практическое применение.

Поможет нам в этом Дмитрий Смаль, руководитель подразделения Managed MySQL и SQL Server в Yandex Cloud. Каждый день он занимается эксплуатацией и автоматизацией СУБД, а до этого делал нагруженные и не очень web-приложения. В целом любит делать разные интересные штуковины, которые работают! Сегодня мы с ним будем говорить про решение для высокодоступного MySQL.

https://habr.com/ru/companies/oleg-bunin/articles/754634/

#db

👉 @database_info
👍2
Визуализация SQL-запроса

SQL-запросы выполняются системой базы данных в несколько этапов, в том числе:
- разбор SQL-запроса и проверка его достоверности
- преобразование SQL-запроса во внутреннее представление, например в реляционную алгебру
- Оптимизация внутреннего представления и создание плана выполнения, использующего информацию об индексах
- Выполнение плана и возврат результатов

#db

👉 @database_info
👍9
T-SQL Fundamentals, 4th Edition
Автор: Itzik Ben-Gan (2023)

Начиная с истории создания запросов и программирования на T-SQL, книга также включает: логическую обработку запросов, конструкции запросов (запросы к одной таблице, объединения, подзапросы, табличные выражения, операторы набора, анализ данных), модификации данных, временные таблицы, транзакции и параллелизм, SQL Graph (совершенно новый для этого издания), а также программные конструкции T-SQL. В книгу включены обширные упражнения и решения с пояснениями, что позволяет читателю на практике применять полученные знания.

#db

👉 @database_info
👍4