Criação de banco de dados MySQL

Olá!

Estou iniciando com banco de dados MySQL, e gostaria de tirar umas dúvidas. Andei dando uma pesquisada mas mesmo assim não consegui sanar essas dúvidas. Seriam elas:

1- Observei que na criação da tabela tem uma ENGINE – InnoDB, para que serve isso?

2- Tem algum padrão a se seguir na criação do banco de dados e das suas tabelas no MySQL? Padrão esses como, setar o charset, colocar esse ENGINE nas tabelas, etc, para que futuramente não sofra/ocorra algum problema caso necessite realizar algo que não foi setado no início da criação do banco de dados.

3- Em relação ao Backup e restauração. É um procedimento feito via programação de acordo com a linguagem que está se utilizando ou é feito na máquina do qual está localizado o servidor do MySQL?

3- Se possível tiver mais algumas dicas, opiniões para manter o banco de dados consistentes, estou aceitando 🙂