Кроме проблем, уже разобранных выше, для ускорения пригодится посмотреть, что такое mysql.createPool, пригодится для асинхронного исполнения конкурирующих запросов, чтобы они шли не через одно соединение и не толпились. Так же гляньте на модуль cluster, для многопоточного запуска ноды, если у Вас запросы к БД происходят во время HTTP запросов, то их можно распараллелить на несколько ядер, а по умолчанию все обрабатывается на одном ядре. Будет не лишним подумать по поводу кеширования результатов запросов в оперативной памяти, или вообще перейти от исполнения запросов к БД из HTTP-запросов, к их предварительному и отложенному исполнению. То есть, при старте забирайте как можно больше данных сразу в память (сейчас памяти много и она дешевая), на HTTP запросах делайте поиск по хешу вместо запроса к БД, а при изменениях, не делайте запрос сразу, а пишите изменение в специальную очередь и сохраняйте в БД в ленивом (lazy) режиме. Так ускоритесь на несколько порядков. Если данные не помещаются в память, то не используйте предварительное чтение, а делайте только отложенную запись. И еще может пригодиться моя либа, ну это уже для удобств, а не для скорости:
https://www.npmjs.org/package/mysql-utilities Вообще, советую PgSQL или MongoDb, гораздо шустрее они и удобнее, сам уже не юзаю MySQL и рад этому.