Skip to content
/ test-db Public

Репозитории, где я тестирую разные базы данных в разных режимах.

Notifications You must be signed in to change notification settings

NurGeo/test-db

Repository files navigation

test-db

Было принято решение провести тестирование разных баз данных, в разных режимах.
Основная задача:

  1. Протестировать разные БД, на скорость в разных режимах работы.
  2. Изучить API и удобство работы с драйверами БД напрямую.
  3. Изучить удобстов работы с БД через фреймворк.
  4. Сделать анализ и графики по полученным результатам.

Есть желание получить ответ на вопрос как ведут себя в работе SQL и noSQL БД.
Второе желание получить ответ на вопрос разницу в цене между серьезным и облегченным БД.
Третье желание получить ответ цены производительности использования фрймворков.
Поэтому выбраны три БД, и два варианта использования.
Типы БД для тестирования:

  1. MongoDB - driver nodejs [mongo-db-driver];
  2. MongoDB - TypeORM [mongo-db-typeorm];
  3. Postgress - driver nodejs [postgress-driver];
  4. Postgress - TypeORM [postgress-typeorm];
  5. SQLite - driver nodejs [sqlite-driver];
  6. SQLite - TypeORM [sqlite-typeorm];

Режимы работы:

  1. Запись на запись в одну таблицу:
    1.0. Запись 999000 записей из файла по object-id (uuid) [write-objid-999];
    1.1. Запись 999000 записей из файла по number-id [write-numid-999];
    1.2. Дозапись 1000 записей из оперативной памяти [write-objectid-1];
  2. Чтение из БД в 1000000 записей:
    2.0. Выборка 50 объектов по object-id или uuid [read-objid-50];
    2.1. Выборка 50 объектов по number-id [read-numid-50];
    2.2. Выборка 50 объектов по уникальному и индексированному полю [read-unique-50];
    2.3. Поиск по строковому полю 3 записей [find-string-3];
    2.4. Поиск по другому строковому полю 50 записей [find-string-50];
    2.5. Поиск по двум строковым полям 5 записей [find2-string-5];
    2.6. Выборка по булевому значению (примерно 50% записей из 1000000) [select-bool-50per-1000];
    2.7. Выборка по числу (примерно 1% записей из 1000000) [select-num-1per-1000];
  3. Запись 1000000 и 5000 связанных БД (foregnkey) записей:
    3.1. Записать 999000 и 4950 связанных записей [write-fkeylink-999];
    3.2. Дозаписать 1000 и 50 связанных записей [write-fkeylink-1];
  4. Чтение связанных записей:
    4.1. Поиск 5 записей из малой таблицы [read-fkeylink-small-5];
    4.2. Выборка объектов большой таблицы из 5 записей малой таблицы [read-fkeylink-big-5];
  5. Запись 1000000 и 5000 логически связанных (программная реализация) записей:
    5.1. Записать 999000 и 4950 связанных записей [write-link-999];
    5.2. Дозаписать 1000 и 50 связанных записей [write-link-1];
  6. Чтение связанных записей:
    6.1. Поиск 5 записей из малой таблицы [read-link-small-5];
    6.2. Выборка объектов большой таблицы из 5 записей малой таблицы [read-link-big-5];
  7. Обновление данных в большой таблице с 1000000 записей.
    7.1. Полное обновление 50 записей [update-50];
    7.2. Частичное (одно поле) обновление 50 записей [p-update-50];

About

Репозитории, где я тестирую разные базы данных в разных режимах.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published