In the [Spanner update Schema docs](https://cloud.google.com/spanner/docs/schema-updates#large-updates:
It's best practice to create the indexes immediately following the table in the list of DDL statements.
The reason for this is that if any other statements occur between the creation of a table and an index referencing that table, the index creation becomes a more complex operation requiring backfill, and cannot be batched with other statements.
The same applies to foreign key creation -- as the creation of a foreign key requires a backing index on the referencing columns