A non-clustered index keeps a copy of the indexed fields in a special structure optimised for searching. Creating an index on 50 million records obviously takes some time.
Once the index is created, it"s maintained automatically as records are added, deleted or updated, so you should only need to reindex if you've had a serious crash of the system or the disk.
So generally, it's best to create the index at the time you create the table.
There is an operation called 'updating statistics' which helps the query optimiser to improve its search performance. The details vary between database engines.