Я бы никогда не стал писать проект на ноде, как вспомогательный инструмент - возможно.
Вопрос даже не в том, что быстро/медленно, а в том, что JS это самый уродливый и неполноценный язык для серверного программирования, который только можно представить.
В таком варианте — никак.
Решения
1. Используйте Spring для синглетонов (лучше всего)
2. Извращение — в кoнструкторе сделайте try{}catch{}(). Если есть эксепшн — сохраните его в еще одной статической переменной. getInstance() будет проверять — если сохранен эксепшн — его выбросит, если нет — пойдет в поле с инстансом и вернет его. Только я бы так не делал :)
3. Инициализация синглетона в начале программы. В одном месте. ТОгда можно не писать getInstance() а использовать public static поле класса
Серьезно — если конструктор синглетона может бросить эксепшн — use Spring, Luke
SELECT r.*
FROM Records r
INNER JOIN Record_Tag rt ON rt.record_id = r.id
INNER JOIN Tag t ON t.id = rt.tag_id
WHERE t.name IN ('tag1','tag2','tag3,...,'tagN')
Выберет все записи (не уникальные) по тегам, для того чтобы выьрать уникальные нужно добавить DISTINCT, или группировку, смотря как вы собираетесь использовать эти данные.