I have an own-made TListBox-like component that will do real-time filter based on user's input. I tested it on a case of 500000 (500k) items, which on average each item was 12 characters length. For optimizing memory usage and performance, the component uses 3 lists:
- A TStringList for keeping the original data
- A dynamic array of LongInt for filtered items
- An additional dynamic array of LongInt for temporary usage
Running the code on Linux, my task manager only showed memory increasing about 0,1 GB.
Nowadays computers usually have at least 4GB memory. So I believe you should be okay to use TStringList for handling 100k records of 3 strings. Except those strings are very long or you're trying to maintain too many lists internally.
So I should create a sql database?
Your case seems to be doable either with or without SQL.
If you have plenty of time and you're not good in SQL, do it using SQL. Use this opportunity to improve your SQL skill. If your time is limited and you're not good in SQL then don't do it using SQL. If you want advanced search features like mentioned by Edson, use SQL.
@MarkMLl
Good reasons.