Lua - довольно высокая производительность для языка сценариев, особенно если вы используете LuaJIT или что-то подобное.
Вы говорите о высокой производительности. О чем мы говорим? Допустим, у вас есть очень простой веб-сервис, который выполняет сценарии, которые он получает через POST, и, вероятно, издержки HTTP сравнительно невелики по сравнению с компиляцией Lua, настройкой среды и временем выполнения.
О базе данных я ничего не могу вам сказать. Есть много возможностей для объединения, и это также зависит от того, как вы выполняете сценарии Lua. Они работают в общей среде? Один за сеанс? Один за запрос?
C ++, безусловно, является хорошим выбором для размещения Lua, потому что Lua хорошо вписывается. Хотя есть и другие хорошие языковые привязки.
Но имейте в виду, что ваша работа не закончена просто скриптами песочницы. Пользовательские скрипты могут делать много других плохих вещей, намеренно или по ошибке, например, выделять много памяти или загружать процессор. В Lua (и я думаю, что это верно для многих, если не во всех средах с песочницей), вы ничего не можете с этим поделать, кроме как убить оскорбляющий экземпляр или, если вы запретили использовать сопрограммы в вашей песочнице, выйти из оскорбительной подпрограммы и сделать что-то умнее.