Табличный поиск числовых данных в PHP

У меня есть довольно большая таблица (CSV-файл ~ 5 МБ), хранящаяся на нашем сервере, которая состоит из чисто числовых данных, дающих некоторый результат на основе двух параметров, например.

A     B     Output
-----------------------
1     1     20
1     2     21
1     3     22
2     1     23
2     2     24
2     3     25
...   ...   ...

Что я хотел бы сделать, так это, основываясь на вводе пользователя, найти ближайшие параметры, а затем использовать соответствующий вывод. Например, используя приведенную выше таблицу, если пользователь выберет A=1,1 и B=2,9, выход будет равен 22.

Каков наилучший способ сделать этот поиск по таблице в php? Нужно ли загружать всю таблицу в PHP? Вместо csv-файла сделать его бинарным, чтобы размер файла был меньше и загружался быстрее? Или я должен создать базу данных mySQL и выполнить поиск таким образом?

TL;DR: я ищу наиболее эффективный способ выполнения поиска по таблице ближайших соседей по строго числовым данным.


person Josiah    schedule 19.11.2012    source источник
comment
Нельзя ли округлить данные перед передачей в запрос?   -  person xelber    schedule 20.11.2012
comment
Что вы ожидаете, если они введут 1,10   -  person sberry    schedule 20.11.2012
comment
Мне нужно проверить, что таблица равномерно распределена, что, я думаю, так и есть, но да, округление ввода должно работать нормально.   -  person Josiah    schedule 20.11.2012
comment
@sberry, я, скорее всего, установлю для входных данных, которые находятся за пределами диапазона таблицы, значения NaN.   -  person Josiah    schedule 20.11.2012


Ответы (1)


Если mysql доступен, я бы предложил использовать таблицу и выполнить поиск. Я предполагаю, что округление пользовательского ввода до ближайшего целого числа перед поиском должно дать вам самое близкое.

person xelber    schedule 19.11.2012