Ако бях на твое място, бих предпочел да сравнявам дескрипторите в кода, а не в SQL. SQL не е предназначен за това. Бих направил следното:-
1. Pre-load N descriptors from SQL onto memory.
2. Compare distances to query descriptor, descriptor by descriptor.
3. If distance<threshold, push to possiblematches.
4. When you reach N/2 descriptors, push the next N.
5. Compare all matches, choose the best one or the best D descriptors, as per your requirement.
За това обаче бих предпочел да използвам вградения в OpenCV клас FileStorage, който осигурява I/O на XML и YAML файлове; той решава главоболието от ръчния анализ на стойностите на дескриптора.