Method 2 is definately a no-no, never do, don't, bad bad naughty bad, why use a database in the first place, bad naughty bad.
Yes it could be faster if your table is only a few rows, but you can't do this with 100k records. That alone means you can't use this method.
Method 1 does do a lot of queries, but they are very fast "will return only zero or one row" queries.
With proper indexes those queries shouldn't take more than a fraction of a second (in MySQL. MS-Access is... well let's not talk about MS-Access asif is were a database)
From a memory-usage point of view, Method 2 will use more memory than method one as soon as you have 2 rows in your table.
In PHP method 2 will store irrelevant data (every row that's in the table and is not found in the directories was in memory for no reason)
In the database the query to get the array definately uses more memory because it allways returns all rows where method one cannot return more than one row.
Note:
There is one thing you should allways remember, a database is there to manupulate data, to find rows that you are looking for.
Method 2 takes all that functionality away from the database and reduces it to glorified flat-file, which means it's just generating overhead.