Skip to content

Миграция базы данных MySQL на PostgreSQL с помощью pgLoader

Пересказ статьи Alexei. Migrate a MySQL database to PostgreSQL using pgLoader


У меня возникла интересная задача, и я думаю, что будет полезно поделиться ей. Возможно, это кому-то поможет.

Описание задачи


Я получил дамп базы данных MySQL, но сейчас я работаю с PostgreSQL. Я начал думать о том, как перенести данные из MySQL в PostgreSQL и обнаружил инструмент, который называется PgLoader.

Continue reading "Миграция базы данных MySQL на PostgreSQL с помощью pgLoader"

Как меняется порядок выполнения SQL в зависимости от СУБД

Пересказ статьи Tobi Sam. How SQL Execution Orders Varies Across Databases


Почему нельзя использовать GROUP BY <порядковые позиции> в SQL Server, но можно в других.


Continue reading "Как меняется порядок выполнения SQL в зависимости от СУБД"

Генерация тестовых данных с помощью встроенных возможностей базы данных

Пересказ статьи Denis Magda. Sample Data Generation With Built-In Database Capabilities


Имеется много способов генерации фиктивных данных для базы данных. Вы можете создать генератор данных, используя Mock-сервисы для тестирования, или получить подмножество собственных производственных данных. Помимо этого многие базы данных предлагают встроенные возможности для создания синтетических данных.

В этой статье вы узнаете, как использовать специальные функции базы данных, иерархические запросы и рекурсивные общие табличные выражения (CTE) для генерации тестового набора данных в PostgreSQL, MySQL, Oracle и SQL Server.
Continue reading "Генерация тестовых данных с помощью встроенных возможностей базы данных"

REGEX в SQL

Пересказ статьи Sai Krishna. REGEX IN SQL


В своих запросах SQL вы, вероятно, использовали предложение WHERE для фильтрации конкретного текста, выполняя поиск на точное совпадение. Например, вы могли бы использовать запрос типа “SELECT * FROM EMP WHERE name = 'Alex'”. Этот подход возвращает записи, которые точно соответствуют имени Alex в том же регистре. Однако имеется более универсальный способ обработки сложных текстовых шаблонов, использующих регулярные выражения (regex).
Continue reading "REGEX в SQL"

Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов

Пересказ статьи Crafting-Code. Tools and Techniques for Profiling and Debugging Slow-Running SQL Queries


Производительность базы данных является ключевым аспектом любого приложения, и когда запросы SQL начинают тормозить, это может оказать значительное влияние на производительность всей системы.

Профилирование и отладка медленно выполняющихся запросов SQL являются важными навыками администраторов баз данных, разработчиков и всех тех, кто отвечает за обслуживание приложений на основе базы данных.

В этой статье мы рассмотрим различные инструменты и методы для обнаружения, анализа и оптимизации медленно выполняющихся SQL-запросов, включая практические примеры кода.
Continue reading "Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов"

Использование substring в MySQL на примерах

Пересказ статьи Rahul Mehta. MySQL substring uses with examples


Введение


MySQL, как и любые другие базы данных, может хранить данные различных типов. Одними из наиболее часто используемых типов данных являются строки. Разработчики широко используют эти типы для хранения данных, а также в различных операциях форматирования. Мы будем часто сталкиваться с требованием получения части строки. MySQL предоставляет функцию “SUBSTRING” для извлечения подстроки из строки. Имеются следующие варианты для извлечения строки:

  1. SUBSTRING

  2. SUBSTR (синоним для SUBSTRING)

  3. SUBSTRING_INDEX

Давайте начнем с понимания того, как работает substring.
Continue reading "Использование substring в MySQL на примерах"

Понимание языка управления данными SQL: GRANT и REVOKE

Пересказ статьи DataScience Nexus. Understanding SQL Data Control Language: GRANT and REVOKE


Структурированный язык запросов (SQL) является мощным языком управления и манипуляции данными в реляционных базах данных. В то время как язык определения данных (DDL) и язык манипуляции данными (DML) являются наиболее используемыми составляющими SQL, язык управления данными (DCL) играет решающую роль в управлении доступом пользователей и разрешениях в пределах базы данных. Здесь мы будем разбираться в DCL и сфокусируемся на двух ключевых операторах - GRANT и REVOKE. Эти операторы исключительно важны для управления и обслуживания прав пользователя в пределах базы данных. Давайте вникать в область разрешений и привилегий SQL. Continue reading "Понимание языка управления данными SQL: GRANT и REVOKE"

Понимание предложения ROWS BETWEEN в SQL

Пересказ статьи Rahma Hassan. Understanding the “ROWS BETWEEN” Clause in SQL


В SQL предложение “ROWS BETWEEN” является мощным средством, которое позволяет вам определить окно строк для анализа или вычислений непосредственно в запросе. Указывая диапазон строк, вы можете выполнять вычисления или применять агрегатные функции к подмножеству данных, а не ко всему результирующему набору. Цель данной статьи - сделать понятным предложение “ROWS BETWEEN” и его использование на примерах.
Continue reading "Понимание предложения ROWS BETWEEN в SQL"

Работа с ограничениями в MySQL

Пересказ статьи Robert Sheldon. Working with MySQL constraints


MySQL предоставляет набор ограничений, которые вы можете включить в определения ваших таблиц для обеспечения целостности данных. Ограничения позволяют лучше контролировать типы данных, которые могут быть добавлены в базу данных. Например, вы можете использовать ограничения, чтобы установить уникальность столбца или допустимость NULL-значений, указать значение по умолчанию для столбца или проверить, что данные попадают в определенный интервал допустимых значений.

MySQL поддерживает шесть основных типов ограничений для обеспечения целостности данных: PRIMARY KEY, NOT NULL, DEFAULT, CHECK, UNIQUE и FOREIGN KEY. В этой статье я познакомлю вас с каждым типом и рассмотрю примеры их работы. Примеры включают ряд операторов CREATE TABLE, которые демонстрируют различные способы встраивания ограничений в определения таблиц. Если вы не знакомы с оператором CREATE TABLE или с тем, как создавать таблицы в базе данных MySQL, обратитесь к моей более ранней статье этой серии.
Continue reading "Работа с ограничениями в MySQL"

Оптимизация MySQL: добавление данных в таблицы

Пересказ статьи Lukas Vileikis. Optimizing MySQL: Adding Data to Tables


Добро пожаловать снова в серию статей по оптимизации MySQL! В том случае, если вы не следили за этой серией, ранее была опубликована пара статей, где обсуждались основы оптимизации запросов, а также оптимизация запросов на выборку (SELECT).

Здесь мы продолжим изучать способы оптимизации операторов INSERT и рассмотрим альтернативы, когда вам необходимо загрузить больше чем несколько строк в операторе LOAD DATA INFILE.
Continue reading "Оптимизация MySQL: добавление данных в таблицы"

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


Серьезно, давайте поговорим о схеме абстрактно и о буквальной схеме, реализованной в некоторых из самых популярных систем баз данных.

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Continue reading "Давайте поговорим о схеме базы данных"

Экспорт данных из базы данных MySQL с помощью SELECT…INTO OUTFILE

Пересказ статьи Robert Sheldon. Exporting data from a MySQL database using SELECT…INTO OUTFILE


В предыдущей статье этой серии я рассматривал оператор MySQL LOAD DATA, который позволяет получить данные из плоского текстового файла в таблицу. В этой статье я рассмотрю оператор SELECT…INTO OUTFILE, вид оператора SELECT, который включает предложение INTO OUTFILE. Это предложение позволяет экспортировать данные из одной или нескольких таблиц MySQL в плоский текстовый файл, что является обратной операцией по отношению к оператору LOAD DATA.
Continue reading "Экспорт данных из базы данных MySQL с помощью SELECT…INTO OUTFILE"

Как импортировать файл Excel в MySQL Workbench, используя Python

Пересказ статьи Priyanshu Garg. How To Import Excel File into MySQL Workbench Using Python


Существуют различные методы, с помощью которых мы можем загрузить данные в MySQL, такие как команда Load data infile и мастер импорта табличных данных. Зачем тогда нам нужен Python для загрузки данных в MySQL Workbench? Причина проста:
  1. Чем больше данных, тем больше времени займет загрузка данных в MySQL Workbench.

  2. Не нужно создавать схему таблицы, Python автоматически сделает это за вас.
Continue reading "Как импортировать файл Excel в MySQL Workbench, используя Python"

Работа с транзакциями в MySQL

Пересказ статьи Robert Sheldon. Working with MySQL transactions


Транзакции в MySQL предоставляют эффективный метод для выполнения множества операторов как одну единицу работы, делая возможным безопасную модификацию данных путем предотвращения модификации или переписывания одних и тех же данных при одновременной работе многих пользователей. Если какие-либо операторы в рамках транзакции завершаются неудачно, изменения могут быть отменены (откат), и база данных возвращается к своему исходному состоянию, которое предшествовало началу транзакции. В противном случае MySQL фиксирует (commit) изменения в базе данных, а затем завершает транзакцию.
Continue reading "Работа с транзакциями в MySQL"

Оптимизация запросов в MySQL: оптимизация обновлений

Пересказ статьи Lukas Vileikis. Optimizing Queries in MySQL: Optimizing Updates


В предыдущих частях этой серии статей по оптимизации MySQL мы говорили о том, как работают запросы на высоком уровне, после чего погрузились в возможности операторов SELECT и INSERT. Сейчас я буду обсуждать также некоторые способы оптимизации модификации данных.
Continue reading "Оптимизация запросов в MySQL: оптимизация обновлений"