New answers tagged joins
You can join .csv file to your shapefile attribute table by (as you wrote) matching unique identier (ID or something else) add your .csv file to project same way as a layer add your shapefile open shapefile properties (right click -> "Properties") click on "Joins" and then add join via green + button as a layer select your csv file, in join and target ...
Have a search in help for the subject "Performance tips for joining data" it offers advice on improving join performance. Your code does not indicate you have added an attribute index which can often improve performance.
If the tables are large I would suggest importing them into a file geodatabase before joining, this will enhance performance. The big gotcha with joins is making sure the joining field data types are the same between the two tables (e.g. numeric to numeric OR text to text NOT numeric to text OR text to numeric).
Top 50 recent answers are included