Próbuję uchwycić pewne różnice w wydajności między Cassandra a relacyjnymi bazami danych.

Z tego, co przeczytałem, wydajność zapisu Cassandry pozostaje stała niezależnie od ilości danych. Przyjmując wydajność zapisu, zakładam, że oznacza to zarówno dodawanie nowych wierszy, jak i zastępowanie istniejących wierszy po dopasowaniu klucza (jak aktualizacja w świecie relacyjnym). Czy to założenie jest poprawne?

Ponadto z tego, co rozumiem, aktualizacje relacyjnych baz danych stają się wolniejsze, gdy tabele/partycje stają się większe. Dzieje się tak, ponieważ w celu zlokalizowania wiersza należy wykonać pełne skanowanie tabeli lub należy przeprowadzić wyszukiwanie indeksu, a obie te czynności będą trwać dłużej wraz ze wzrostem tabeli lub partycji. Czyli aktualizacje trwają wiecznie dłużej w zależności od ilości danych tabeli/partycji?

Kiedy nowe dane są wstawiane do relacyjnej bazy danych, wiem, że wszystkie indeksy muszą mieć nowe dane, ale nie ma żadnego wyszukiwania, prawda? Czy zatem wstawianie będzie coraz wolniejsze wraz ze wzrostem ilości danych, czy też pozostanie na stałym poziomie w relacyjnych bazach danych?

Dzięki za wszelkie wskazówki

1
RandomUser 29 maj 2011, 03:53

2 odpowiedzi

Najlepsza odpowiedź

Staną się wolniejsze, jeśli tabela ma indeksy. Nie tylko dane muszą zostać zapisane, ale także indeks musi zostać zaktualizowany. Wstawianie tabeli bez indeksów i bez ograniczeń jest błyskawiczne, ponieważ nie trzeba wykonywać żadnych kontroli. Rekord można po prostu zapisać na końcu obszaru tabeli.

4
GolezTrol 29 maj 2011, 03:58

Po stronie relacyjnej bazy danych przeprowadzałem testy obciążenia na naszym RDBMS, gdzie widzę, że wydajność spada wykładniczo w miarę dodawania danych do bazy danych. Test wydajności RDBMS

Nadal pracuję nad konfiguracją Cassandry, aby móc przeprowadzić porównywalny test. W międzyczasie ta prezentacja Cassandry zawiera informacje na temat Cassandry w porównaniu do MySQL: http://www.slideshare.net/Eweaver/cassandra-presentation-at- nosql

1
maasg 25 czerwiec 2011, 01:39