In PostgreSQL i have the freedom of choosing to put index (of a table or materialized view) on tablespace other than the one i chose for the table (or materialized view) itself.
Is there any performance impact of this?
The idea to separate tables and indexes in different tablespaces (which must be on different devices) as a performance tuning measure is an old myth that is slow to die.
It may be a good idea to spread I/O over several devices, but you should do that by using striping on the file system or hardware layer. Of course you can also do it by using different tablespaces, but it is unclear why specifically separating indexes and tables should be beneficial.
People who know other databases think similar.