2013-09-04 2 views
0

У меня есть приложение на основе MS SQL, главная цель которого - поиск по таблице компаний. Эта таблица компании содержит несколько столбцов, на которых можно было искать. Подобно CompanyName, Address, PostalCode, Latitude, Longitude.Преобразование SQL-приложения в Redis

Теперь, из-за необходимости в скорости, я собираюсь преобразовать это в приложение на основе Redis DB. Может ли кто-нибудь помочь мне, с каким подходом принять это правильно? Как мне настроить мою Redis DB? И как я должен запросить его, чтобы найти все компании с tech в их названии компании и расположенные между латами x-0.5 и lat x + 0.5 и длинными y-0.5 и длинными y + 0.5?

Возможно, это не лучший NOSQL-db для использования для этого типа или поиска? Другие рекомендации также приветствуются.

+0

Redis - это магазин ключей/ценностей. Поиск по значениям - это то, что было ** не ** сделано для. – Philipp

+0

Преобразование приложения в технологию баз данных с другой философией редко заканчивается хорошо, потому что для действительно использования сильных сторон новой базы данных вам часто приходится полностью пересматривать способ структурирования ваших данных. Это может также повлиять на многие, казалось бы, несвязанные аспекты приложения. – Philipp

ответ

1

Redis - это хранилище ключей/значений, которое очень быстро, когда вы знаете точный ключ, но очень плохо при поиске нескольких ключей для определенного значения или диапазона значений. Поэтому я бы не посоветовал вам использовать Redis.

Если вы хотите выполнить поиск по координатам GPS, MongoDB будет вариант, потому что it has a rich API especially for geospatial searching.

Когда вам нужен быстрый и полнофункциональный полнотекстовый поиск, вы должны взглянуть на Lucene, который не является самой базой данных, а инструментом для интеграции с другими базами данных.

Кстати: Мантра «NoSQL быстрая» - это грубое упрощение. Верно, что конкретные базы данных могут выполнять конкретные задачи в определенных помещениях намного быстрее, чем любая реляционная база данных, но есть также случаи, когда дело обстоит наоборот.

Вы действительно уверены, что уже используете все возможности для повышения производительности своей базы данных MSSQL?

  • Имеются ли в каждом поиске подходящий индекс?
  • Все ли вы присоединяетесь к явным вторичным ключам?
  • Правильно ли ваша база данных нормализована?
  • Не могли бы вы избежать некоторых дорогостоящих операций путем реорганизации дизайна вашей базы данных, даже если это означает, что вам нужно нарушить нормализацию?
+0

Спасибо, что помогли мне понять. Между тем я уже понял, что Редис может быть не тем, что мне нужно, но все равно приятно слышать это от кого-то другого. – Tys

Смежные вопросы