What an index does
An index is a separate sorted structure the database keeps for a column, like the index at the back of a book. A filter on that column can jump to the matching rows instead of reading the whole table. You pay a little cost when you insert data, and you save a lot when you query it.
When it does not help
An index only pays off when the filter narrows a lot. Indexing a column where every row has the same value does nothing useful. And an index you never filter on is pure overhead. The honest way to decide is to run EXPLAIN and see whether sqlite actually reaches for it.