Исходя из задачи, скорее всего, наилучшим решением будет SQL. Если твой код вида as2dSd9 уникальный, то на это поле будет правильно сделать primary key. Тогда операция поиска по коду будет достаточно быстрая.
Если коды не уникальные, и критична скорость работы, можно использовать партицирование, т.е. разделение данных на несколько таблиц. К примеру, берешь набор первых символов, и делаешь для каждого символа свою таблицу. Соответственно, у тебя количество данных в одной таблице сокращается в десятки раз. Варианты, как партицировать, могут быть разные. Можно от того же первого символа брать ACII код, и делить таблицы по остатку от деления на какое то число. Соответственно, меняя число меняешь количество таблиц. Смысл в том, что бы количество данных в таблице давало приемлемую скорость выборки. И не забудь про поисковый индекс ;)
Так же не будет никаких проблем с работой с этими данными как из PHP, так и из C#