$variable['field'] is better, then sometimes you dont need to write all values, it gets them all in once. or else with $variable[0] you need to do like: $variable[0]; $variable[1]; $variable[2]; $variable[3]; $variable[4]; and more
I have heard that index is faster mysql_fetch_assoc() is faster than mysql_fetch_row that what i heard. I have used both indeed mysql_fetch_array seem faster. There is one function call mysql_fetch_array which addresses both by index and by field. mysql_fetch_assoc addresses by index and mysql_fetch_row by field. take a look at this thread in siteforum.com http://www.sitepoint.com/forums/showthread.php?t=624231
An important thing to note is that using mysql_fetch_assoc() is not significantly slower than using mysql_fetch_row(), while it provides a significant added value.