I am trying to write a very simple explanation (based on my current knowledge of Sql Server):
If the index has a low selectivity, this means that for the same value, a larger percentage of the total number of rows is obtained. (e.g. 200 out of 500 rows have the same value for your index)
Usually, if the index does not contain all the column information that you need, then it uses a pointer where to physically find the row that is associated with this "record" in the index. Then in the second step the engine should read this line.
So, how do you see such a search using two steps. And here comes the selectivity:
Other results that you get are related to the low selectivity of the more double work that the engine should do. Thus, there are some cases due to this fact, when even scanning a table is more efficient, then the index tends with very low selectivity.
source share