По хорошему, нужно делать синтаксический разбор, примерно как здесь esprima.org/demo/parse.html
Ну и потом выбирать несколько случайных команд.
Ну или хотя-бы кавычки считать (учитывая экранирование).
myskypesla: вы так говорите "один раз написанный сервер", будто вы действительно его напишете.
Судя по уровню вопросов, вы скорее всего возьмете один из готовых, а до написания собственного дорастете еще не скоро. Или у вас особенная трактовка слов "написать" и "сервер".
chelkaz: 0.00025150 - время выборки по id из таблицы в которой более 500000 записей на железе которому 9 лет.
А если выбирать сразу несколько записей (а что, так можно было?) то в пересчете на каждую придется еще меньше.
5 млн почти одинаковых запросов - это кошмар. Я верю что вам нужны эти данные, но скорее всего эти запросы можно объединять. Выбирать сразу 100 случайных юзеров, например. Или тысячу. Или вообще делать эти случайные штуки внутри БД.
277 часов на 5млн записей - это очень кошмарный кошмар.
Umid:
Статический метод может вызываться без создания экземпляра класса.
Фабрика - возвращает объекты.
Смысла сравнивать их нет. Точно так-же как нет смысла сравнивать теплое и мягкое, или зеленый и фломастер.
Не все фломастеры зеленые. Не все зеленые предметы бывают фломастерами.
Некоторые фломастеры - зеленые.
Точно так-же можно написать статический метод, который будет фабрикой.
Umid: А вот нельзя их так разделить, потому что бывают методы, которые и статичные, и при этом фабрика! Такой себе земляной асфальт. И разница между ними как между теплым и мягким.
AntohaRomaha: Да, ошибся спросонья, stopPropagation а не preventDefault https://jsfiddle.net/43q3q4pc/
Обратите внимание на третий параметр, в нем вся магия.
Но и она не поможет, если изначальный обработчик тоже был с useCapture=true
Ну и потом выбирать несколько случайных команд.
Ну или хотя-бы кавычки считать (учитывая экранирование).