Зачем выбирать PostgresSQL вместо MySQL для высокопроизводительных сценариев?
Зачем выбирать PostgresSQL вместо MySQL для высокопроизводительных сценариев?

1. Введение в базу данных TLDR;

1.1 MySQL

MySQL претендует на звание самой популярной базы данных с открытым исходным кодом и является одним из самых популярных прикладных программ RDBMS (система управления реляционными базами данных). Буква M в LAMP относится к MySQL. Приложения, созданные на LAMP, будут использовать MySQL.

Первоначально MySQL была разработана MySQL AB, а затем продана компании Sun за 1 миллиард долларов США в 2008 году. Sun была приобретена Oracle в 2010 году. Приобретение Oracle привело к появлению двух версий MySQL: Commercial Edition и Community Edition. Что касается последнего, поскольку Oracle контролирует разработку MySQL, она подверглась критике со стороны большинства пользователей.

1.2 PostgreSQL

PostgreSQL позиционирует себя как самая передовая в мире база данных с открытым исходным кодом и представляет собой систему управления реляционными базами данных (ORDBMS). Это объектно-реляционная система управления базами данных, основанная на POSTGRES версии 4.2, разработанная факультетом компьютерных наук Калифорнийского университета. Первоначально она была разработана в Калифорнии в 1985 году. Разработана Университетом Беркли в качестве преемника базы данных Ingres. PostgreSQL — это полностью управляемый сообществом проект с открытым исходным кодом.

Он предоставляет единую полнофункциональную версию, в отличие от MySQL, которая предоставляет несколько различных выпусков для сообщества, коммерческих выпусков и корпоративных выпусков. PostgreSQL распространяется по либеральной лицензии BSD/MIT, и организации могут использовать, копировать, изменять и распространять код при условии предоставления уведомления об авторских правах.

Note:

Иерархические отношения MySQL: пример -> база данных -> поверхность

Postgres иерархические отношения: примеры -> база данных -> Schema -> поверхность

Схему можно понимать как пространство имен и она не влияет на использование.

2. Сравнение производительности

тестовая среда

MySQL:

  • Конфигурация оборудования: 4 ядра, 16 ГБ памяти.
  • Версия: MySQL 8.0

Postgres SQL:

  • Конфигурация оборудования: 4 ядра, 16 ГБ памяти.
  • Версия: Postgres SQL 13.

Для данных стресс-теста SELECT запрашивается на основе первичного ключа, UPDATE выполняется на основе первичного ключа, а INSERT — это ВСТАВКА одной строки данных за раз. По данным опрессовок можно сделать следующие выводы:

  • Что касается пропускной способности, Postgres SQL В два раза лучше MySQL по производительности SELECT, В 4-5 раз лучше INSERT, UPDATE Это в 5-6 раз лучше.
  • По среднему расходу времени Postgres SQL более чем в несколько раз превосходит MySQL.
  • Особенно после обновления горячей строки MySQL представляет собой только Postgres SQL, 1/8, а также увеличился в 7 раз.

3. Применимые сценарии, как выбрать?

Относительно Postgres MySQL проще, Поэтому он имеет более высокую популярность, Что касается технической информации и поддержки технических компонентов, поддержка также является более полной. Но это не значит, что он незаменим для автора. MYSQL больше похож на инструмент для малых и средних предприятий и частных лиц. данныхинструмент, Потому что есть много людей, которые это знают, Документация относительно полная, поэтому приступить к работе легко. Но это не значит, что MYSQL лучший.

Из приведенного выше рисунка мы видим, что темпы развития Postgres SQL очень высоки и в настоящее время догоняют MySQL. Однако, условно говоря, популярность MySQL имеет тенденцию к снижению.

Применимые сценарии MySQL

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

Сценарии, в которых применим Postgresql

В общем, Postgre SQL больше подходит для сложных структур данных, продвинутых приложений и крупномасштабных наборов данных. Конечно, если размер данных относительно невелик, Вы также можете выбрать Postgres SQL, Независимо от сценария, если вы хотите использовать Postgres SQL, Всегда можно найти соответствующее решение, есть и только, Это неприменимо, если условия запроса более сложны. Потому что, согласно нашему фактическому онлайн-бизнесу, поверхность сейчас Postgre SQL может выбрать неправильный индекс.

4. Резюме

Преимущества PostgreSQL перед MySQL
  • Postgre SQL намного лучше, чем MYSQL по производительности,Это можно отразить в приведенных выше данных испытаний под давлением.,Отнимает ли это много времени,Или с точки зрения общей пропускной способности?,имеют значительные преимущества
  • Postgre SQL имеет очевидные преимущества при обновлении одной строки, особенно когда включен HOT. После ОБНОВЛЕНИЯ производительность СравниватьMYSQLНа порядок выше
  • Стандартная реализация SQL более полная, чем MySQL, а реализация функций более строгая и академическая;
  • Основная поверхность Postgresql хранится в куче поверхности.,MySQL использует поверхность организации индекса,Способен поддерживать большие объемы данных, чем MySQL.
  • Первичная и вторичная репликация Postgresql — это физическая репликация.,Относительно логической репликации MySQL на основе binlog.,Согласованность данных более надежна,копироватьпроизводительностьвыше,Влияние на производительность хоста также меньше.
  • MySQL уровень изоляции транзакции repeatable read не предотвращает общие одновременные обновления, Вы должны запереть его, Но пессимистическая блокировка повлияет на производительность, Вручную реализовать оптимистическую блокировку сложно. и Postgre SQL В колонке скрытый оптимистический замок version поля, по умолчанию repeatable read Уровень может гарантировать правильность одновременных обновлений. И есть производительность с оптимистической блокировкой.
Относительные недостатки Postgresql для MySQL:
  • Postgre Конструкция поверхности системы SQL относительно сложна. В некоторых системах выполнять статистику и операции сложнее.
  • Postgre SQL Что касается выбора индекса, вероятность неправильного выбора немного выше (фактическое измерение). И его нельзя использовать с MySQL Так же просто использовать Force_index
  • В Postgresql есть вакуум, и вам необходимо настроить параметры вакуума в зависимости от конкретных сценариев использования.

<END>

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose