![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
prguser |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.5.2014 Репутация: нет Всего: нет |
Добрый день.
Начну с описания БД. 1. Таблица всех пользователей. 2. Таблица пользователей с текущими координатами их геогр. местоположения. Пользователь присылает запрос на сервер (PHP) с обновлением гео. координат. В ответ необходимо эффективно определить идентификаторы всех пользователей в радиусе 500 м для вышеупомянутого пользователя. Количество пользователей не ограничено. Варианты. 1. R-tree и его модификации требуют создания дерева в памяти. 2. Множество таблиц, определяющих всех пользователей в 1 км кв. Пользователь присылает обновление. Идёт поиск по всем существующим таблицам на вхождение точки в прямоугольник. Если "да", то вставить/обновить запись; "нет" - создать новую таблицу с центром в точке запрашивающего пользователя. Таким образом количество этих таблиц может достичь 511 миллионов (см. площадь Земли). 3. ??? Другие варианты? |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
btree composite index замечательно сканится с результатом в виде квадрата 500x500 метров.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |