Sempre prefira a opção 2, pois são à prova de injeção de SQL. A opção 1 fará com que seu site seja invadido em 5 minutos, enquanto os hackers terão dificuldade em quebrar a opção 2.
Mesmo na opção de desempenho 2 pode ser um pouco mais rápido.
No entanto :Os nomes das tabelas não podem ser escapados com o
?
então não vá lá. Apenas certifique-se de que os usuários não possam inserir o nome da tabela manualmente e você estará protegido contra hackers. -editar-
Por que você quer tornar os nomes das tabelas variáveis de qualquer maneira?