Scraper Обновлено: 3 October, 2019

Сравнение скорости - получение данных с помощью сокетов и запросов API

  Перевод   Ссылка на автора

фото Вери Иванова на Unsplash

ОКОЛО

В этой статье сравниваются различные методы доступа к информации базы данных со стороны клиента.

Код для следующего урока можно найти в Сравнение скоростей GitHub хранилище.

Ниже приведены пошаговые инструкции по созданию собственных тестов с использованием кода репозитория github, а также файла read me из репозитория.

Изучены три метода:

Способ 1: сокет

использование соединения через веб-сокет для непосредственного запроса к базе данных

Способ 2: сокет + API

использование соединения через веб-сокет для запроса данных через API

Метод 3: API

доступ к данным через API


ВВЕДЕНИЕ

Для сравнения, используя 3 вышеупомянутых метода, я использовал общий набор данных и запросов, которые будут получены из базы данных PostgreSQL.

Данные состоят из 1000 строк пользовательской информации из таблицы, которая была сгенерирована с использованием онлайн-генератора данных.

Общее время транзакции было конечной отметкой времени - начальной отметкой времени. Начальная временная метка была, когда клиент впервые инициировал действие (нажатие кнопки), а конечная временная метка была, когда данные были получены с сервера.

Код был настроен очень упрощенно. 4 кнопки: 1 кнопка для каждого метода, который отправит запрос на получение данных, и кнопка результата, которая сгенерирует объект в консоли, который будет отображать все данные (время начала (мс), время окончания (мс), общее время ( Миз)). Нажмите кнопку метода для каждой транзакции, которую вы хотите выполнить, и кнопку результата, когда вы будете удовлетворены количеством выполненных транзакций.

Простое расположение для 3 методов и результат

ТЕХНИЧЕСКИЙ СТЕК

Внешний интерфейс

socket.IO + JQuery + AJAX

Back End

socket.IO + Node.js + Express + axios + PostgreSQL


ИНСТРУКЦИИ

  1. клонировать найденное хранилище github Вот
  2. создать базу данных postgresql с именем «speedtest»
  3. изменить файл .env, чтобы отразить информацию вашей базы данных
DB_HOST=localhost
DB_USER=yourusername
DB_PASS=yourpassword
DB_NAME=speedtest
DB_PORT=5432
  1. бегnpm installчтобы получить необходимые пакеты.
  2. бегnpm run db:resetсоздать таблицу (пользователей) для базы данных и создать засеянные данные
  3. бегnpm startзапустить сервер

ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ

Примечание: каждый из 3 методов был выполнен 20 раз. Результаты были получены, а затем статистический анализ был произведен с использованием Microsoft Excel.

Метод № 1 - Гнездо

Способ 1: сокет - статистика

Метод № 2 - Socket + API

Способ 2: сокет + API - статистика

Метод № 3 - API

Способ 3: API - статистика

ВРЕМЯ СДЕЛКИ (МИЛЛИСЕКОНДЫ)

время транзакции для всех 3 методов (в миллисекундах)

РЕЗЮМЕ

В этой статье мы выполнили упрощенный поиск данных из базы данных PostgreSQL 3 различными способами.

Способ 1. Сокет-соединение напрямую получает данные с использованием SQL.

Способ 2. Сокет-соединение выполняет запрос API (axios) для извлечения данных.

Метод 3: Клиент напрямую выполняет запрос API (AJAX) для получения данных.

Метод 1 имел наименьшее среднее время для извлечения всех данных, в то время как метод 2 (который представлял собой комбинацию метода 1 и метода 3) имел наибольшее среднее время.

Я надеюсь, что вы сможете использовать информацию, взятую из этой статьи, и сможете применить ее для решения более сложных проблем.