8 / 8 / 0
Регистрация: 13.12.2016
Сообщений: 48
|
||||||
Сравнение производительности MariaDb и PostgreSql на .NET CORE06.01.2018, 23:05. Показов 4319. Ответов 25
Решил присоединиться к кроссплатформенной разработке на .NET CORE и переписать одно из API на своих сервисах с PHP на C# ASP .NET CORE
И т.к. по сути пришлось начать с чистого листа, то решил поэкспериментировать на тему какаю базу данных из OpenSource использовать. До этого использовал MariaDb в связке с PHP. Последние пол года, гугля стал замечать, что все рекомендуют переходить на PostgreSql. Почитав множество отзывов решил испробовать на собственном опыте. И так поехали: - для тестирования создал консольное приложение .NET CORE в VisualStudio; - для MariaDb скачал с nuget пакет MySqlConnector, для PostgreSql пакет Npgsql; - на одной машине под Debian (старый системник INTEL 2 ядра, 4 GB, SATA raid-1) в локальной сети поднял MariaDb и PostgreSql; - создал в базах таблицы с идентичной структурой (столбец id (автоинкремент primary key), столбец name_user (varchar(77))); - код для тестов практически идентичен для PostgreSql и MariaDb(выложу ниже); - проводил тесты с использованием транзакций и без них; - все запросы отправлял в цикле по одному для проверки; - решил ограничиться простыми запросами, без INNER JOIN(Возможно позже использую и их и дополню тему); Перед каждым тестом очищал таблицу (truncate + сброс автоинкремента), затем делал производил до 10 итераций одного теста. И вот что получилось: Скрины тестов: INSERT: UPDATE: SELECT: DELETE: Таблица с результатами тестов: тест баз.xlsx Код, использованный для теста, может кто еще потестит и отпишет результаты:
1. PostgreSql почти в 4 раза быстрее производит запросы на добавление данных (INSERT) без применения транзакций. 2. При использовании транзакций производительность у MariaDb (INSERT) увеличилась практически в 13 раз. 3. При использовании транзакций производительность у PostgreSql (INSERT) увеличилась в среднем в 1,6 раз. 4. При увеличении объема вставляемых данных (INSERT) MariaDb при применении транзакций начинает выигрывать у PostgreSql. 5. Смутил в PostgreSql Update, почему то обновлялась только первая строка, пришлось делать сброс подставляемых параметров к запросу (пометил в коде !!!). 6. Был неприятно удивлен скоростью работы MariaDb без транзакций. Раньше их не применял в связке с PHP. Да и на боевом сервере ранее особо тормозов не замечал. 7. Пришел к выводу что транзакции нужно использовать. В целом при применении транзакций Производительность MariaDb сопоставима с PostgreSql. Кроме этого MariaDb использую на протяжении нескольких лет и пока она не подводила. Поэтому не могу однозначно по тестам сделать вывод с какой базой лучше работать. Помогите принять решение, какую из этих двух баз лучше использовать и почему, основываясь на вашем опыте?
0
|
06.01.2018, 23:05 | |
Ответы с готовыми решениями:
25
Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, Net Native)
ASP.NET Core. Старт - что нужно знать, чтобы стать ASP.NET Core разработчиком? |
![]() 53 / 31 / 4
Регистрация: 19.12.2013
Сообщений: 170
|
|
17.03.2023, 15:38 | |
Какая база будет работать быстрее существенно зависит от ваших данных. В некоторых случаях быстрее будет MySQL/MariaDB, в других PostgreSQL, в третьих разница будет минимальна,
в четвертых вы упретесь в сеть и разницы не увидите. Увы, но на ваших данных и железе вам надо провести тест самостоятельно и выбрать самостоятельно. Если разница будет не более 10-20 % тогда вы глазом не увидите разницу, берите ту базу что более популярна, а именно MariaDB.
0
|
![]() ![]() 13497 / 9030 / 1326
Регистрация: 21.01.2016
Сообщений: 33,858
|
|
17.03.2023, 16:05 | |
AnastasiaSX, почему вы решили, что Мария более популярная? Почему вы решили, что если она действительно более популярная на цифрах, то это какое-то значимое преимущество?
PHP популярнее шарпов в вебразработке, но ТСа это не остановило начать переписывать проект на шарпе.
0
|
![]() |
|
17.03.2023, 16:14 | |
0
|
![]() ![]() ![]() ![]() |
||
17.03.2023, 16:20 | ||
![]() С разными БД работаю много лет, заказчиков еще больше - ни у одного такой не видел.. Более популярна блин. Не смешите.
0
|
![]() |
|
17.03.2023, 16:28 | |
0
|
![]() ![]() ![]() ![]() |
|
17.03.2023, 16:30 | |
0
|
![]() 4637 / 2651 / 728
Регистрация: 02.08.2011
Сообщений: 7,113
|
||||
17.03.2023, 16:37 | ||||
Общеизвестно, что многие технологические тренды перетекают в РФ с приличной задержкой в 2-3 года... Добавлено через 55 секунд
0
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
17.03.2023, 16:39 | |
0
|
![]() |
|
17.03.2023, 16:41 | |
0
|
![]() ![]() ![]() ![]() |
||
17.03.2023, 16:44 | ||
К слову сказать, наверное даже потому, что и саму MySQL уже все труднее встретить в организациях, не то что-бы какой-то ее клон...
0
|
![]() ![]() ![]() ![]() |
|
17.03.2023, 16:46 | |
1
|
17.03.2023, 16:46 | |
Помогаю со студенческими работами здесь
20
переезд с lightt + mariadb 5.x на nginx + php-fpm + mariadb
Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart ASP.NET Core + EF Core: ошибка при обновлении БД после создания миграции Разница между ASP.NET Core 2, ASP.NET Core MVC, ASP.NET MVC 5 и ASP.NET WEBAPI 2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
|
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C#
Задание 1:
КЛАСС FORM 1
public partial class Form1 : Form
{
Spisok listin = new Spisok();
. . .
|
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
|
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
|
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
|
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
|
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
|
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг.
Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя.
Странные серые краски проникают и. . .
|