Laravel Поиск узких мест в поисковой системой

mstdmstd

Новичок
Привет,

Есть программа с поисковой системой (laravel5.8/mysql5 /vuejs 2.5 / bootstrap 4 ) где данные читаются с удаленного сервера используя ip этого сервера
и отображаются для юзера. Юзер может выбрать некоторые из этих слов и сохранить их в базе. Все просто.Таблица users обычна.

Когда юзер сохраняет данные то 1 строка сохранятется в базе :

SQL:
CREATE TABLE `user_lists` (

  `id` int(10) UNSIGNED NOT NULL,

  `user_id` int(10) UNSIGNED NOT NULL,

  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,

  `description` text COLLATE utf8mb4_unicode_ci,

  `saved_count` int(10) UNSIGNED NOT NULL DEFAULT '1',

  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

  `updated_at` timestamp NULL DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
где пользователь вручную заполняет поля title и description.

найденные строки имеют 40-50 полей которые сохраняются в таблице:

SQL:
CREATE TABLE `search_results` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_list_id` int(10) UNSIGNED NOT NULL,
  `source_id` int(10) UNSIGNED NOT NULL,
  `field` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `value` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Мой вопрос как приложенние может быть протестировано на большую нагрузку в поиске узких мест?
На первый взгляд таким узким местом кажется удаленный сервер. Поскольку не каждый запрос юзером будет сохранен в mysql db.
Приходит мысль написать функцию для выполнения запроса curl-ом с удаленного сервера рендомно меняя параметры ввода запроса
(в запросе всего порядка 12 параметров).

Из JS устанавливая временной интервал запускать этот запрос скажем N-запросов в минуту
N - начиная с 10 и увеличивая для следующих тестов и выводя на экран результыт запросов на экран
(время выполнения запроса, параметры запроса, кол-во строк с сервера)...



Я выдумывал велосипед выше, какие еще benchmark-и / тесты существуют для таких целей?

Спасибо !
 
Сверху