http://www.perlmonks.org?node_id=988786


in reply to Perl DBI help

On a related note, select * should generally not be used in production code. You either know what columns you want, or you don't. If you do, specify them, if not, ask yourself why am i writing this statement.

Spelling out columns: produces self-documenting statements, prevents errors due to column order change, avoids redundant data transfer of unused column data, and avoids redundant table fetches (if the index has all the required data).

select * is best used in ad-hoc queries and exists() clauses, where the actual column data and order do not matter..