По первому варианту:
1. Зачем здесь нужен класс Database?
2. У тебя будет только один класс во всем приложении? или больше? А сколько будет коннектов после new myclass и new myclass2?
По второму.
Высоколобые не любят синглетон. Чем-то он им там с тестированием мешает. Плюс религиозная нетерпимость. Так что используй
статический синглтон только если у тебя код организован в виде классического процедурногоговнокода.
Если же у тебя все в виде кошерной иерархии классов, то, как замечено в другом ответе,
передавай соединение в класс, а не создавай его каждый раз заного.
function __construct($db)
{
$this->db = $db;
}