Я уже некоторое время использую mySQL для приложения, и чем больше данных я собираю, тем медленнее они становятся. Поэтому я изучал параметры NOSQL. Одна из вещей, которые у меня есть в mySQL - это View, созданный из нескольких соединений. Приложение отображает всю важную информацию в сетке, и пользователь может выбирать диапазоны, выполнять поиск и т. Д. На этом наборе данных. Стандартный Query материал.
Глядя на Cassandra, все уже отсортировано на основе параметров, которые я предоставляю в своем хранилище-conf.xml. Таким образом, я бы использовал определенную строку в качестве моего ключа в SuperColumn и сохранял кучу данных в столбцах ниже этого. Но я могу сортировать только по одному столбцу, и я не могу выполнять настоящий поиск в столбцах, не извлекая все SuperColumns и не просматривая данные, верно?
Я не хочу дублировать данные в разных семействах Column, поэтому я хочу убедиться, что Cassandra подходит для меня. В Facebook, Digg, Twitter у них много функций поиска, поэтому, возможно, я просто не вижу решения.
Есть ли способ с Cassandra для меня искать или фильтровать определенные значения данных в SuperColumn или связанных с ним столбцах? Если нет, есть ли другой вариант NOSQL?
В приведенном ниже примере кажется, что я могу только запросить phatduckk, friend1, John и т. Д. Но что, если я захочу найти кого-нибудь в семье ColumnFame, живущей в городе == "Беверли-Хиллз"? Можно ли это сделать без возврата всех записей? Если да, могу ли я выполнить поиск по городу == "Беверли-Хиллз" И штату == "CA"? Похоже, я тоже не могу, но я хочу убедиться, что у меня есть варианты.
AddressBook = { // this is a ColumnFamily of type Super
phatduckk: { // this is the key to this row inside the Super CF
friend1: {street: "8th street", zip: "90210", city: "Beverley Hills", state: "CA"},
John: {street: "Howard street", zip: "94404", city: "FC", state: "CA"},
Kim: {street: "X street", zip: "87876", city: "Balls", state: "VA"},
Tod: {street: "Jerry street", zip: "54556", city: "Cartoon", state: "CO"},
Bob: {street: "Q Blvd", zip: "24252", city: "Nowhere", state: "MN"},
}, // end row
ieure: {
joey: {street: "A ave", zip: "55485", city: "Hell", state: "NV"},
William: {street: "Armpit Dr", zip: "93301", city: "Bakersfield", state: "CA"},
},
}