Większość aplikacji w dzisiejszych czasach wymaga dynamicznego przechowywania danych do obszernego wykorzystania w przyszłości w samej aplikacji. Wszyscy wiemy, że dane są przechowywane w bazie danych, która dzieli się na dwie kategorie:relacyjny i nierelacyjny DBMS.
Wybór spośród tych dwóch będzie w pełni zależał od struktury danych, ilości danych, wydajności bazy danych i skalowalności.
Relacyjne DBMS przechowują dane w tabelach w postaci wierszy, tak aby korzystały ze strukturalnego języka zapytań (SQL), co czyni je dobrym wyborem dla aplikacji obejmujących kilka transakcji. Obejmują one MySQL, SQLite i PostgreSQL.
Z drugiej strony, bazy danych NoSQL, takie jak MongoDB, są zorientowane na dokumenty, tak że dane są przechowywane w zbiorach w postaci dokumentów. Daje to większą pojemność dla dużego zestawu danych, co stanowi kolejną zaletę skalowalności.
Na tym blogu zakładamy, że masz lepszą wiedzę na temat MongoDB lub MySQL i dlatego chciałbyś poznać korelację między nimi pod względem zapytań i struktury bazy danych.
Poniżej znajduje się ściągawka, aby lepiej zapoznać się z wysyłaniem zapytań MySQL do MongoDB.
Ściągawka z MySQL do MongoDB — Warunki
Warunki MySQL | Warunki MongoDB | Wyjaśnienie |
---|---|---|
Stół | Kolekcja | To jest kontener do przechowywania danych, które zwykle są podobne w zawartych obiektach. |
Wiersz | Dokument | Definiuje pojedynczy obiekt w tabeli dla MySQL i kolekcji w przypadku MongoDB. |
Kolumna | Pole | Każdy przechowywany element ma właściwości, które są definiowane przez różne wartości i typy danych. W MongoDB dokumenty z tej samej kolekcji mogą mieć różne pola. W MySQL każdy wiersz musi być zdefiniowany tymi samymi kolumnami, co już istniejące. |
Klucz podstawowy | Klucz główny | Każdy przechowywany obiekt jest identyfikowany za pomocą unikalnej wartości pola, w przypadku MongoDB mamy ustawione pole _id automatycznie, podczas gdy w MySQL możesz zdefiniować swój własny klucz podstawowy, który jest przyrostowy podczas tworzenia nowych wierszy. |
Połączenia tabel | Osadzanie i łączenie dokumentów | Połączenie skojarzone z obiektem w innej kolekcji/tabeli z danymi w innej kolekcji/tabeli. |
gdzie | $match | Wybieranie danych spełniających kryteria. |
grupa | $grupa | Grupowanie danych według pewnych kryteriów. |
upuść | $unset | Usuwanie kolumny/pola z wiersza/dokumentu/ |
ustaw | $set | Ustawianie wartości istniejącej kolumny/pola na nową wartość. |
Oświadczenia schematu
Oświadczenia tabeli MySQL | Wyciągi dotyczące kolekcji MongoDB | Wyjaśnienie |
---|---|---|
Baza danych i tabele są tworzone bezpośrednio przez panel administracyjny PHP lub zdefiniowane w skrypcie, np. Tworzenie bazy danych Tworzenie tabeli | Baza danych może być utworzona niejawnie lub jawnie. Niejawnie podczas pierwszego wstawiania dokumentu tworzona jest baza danych i kolekcja, a także automatyczne pole _id dodawane do tego dokumentu. Możesz również utworzyć bazę danych bezpośrednio, uruchamiając ten komentarz w Mongo Shell | W MySQL musisz określić kolumny w tworzonej tabeli, a także ustawić pewne reguły walidacji, takie jak w tym przykładzie typ danych i długość, które trafiają do określonej kolumny. W przypadku MongoDB nie jest konieczne definiowanie pól, które powinien zawierać każdy dokument, ani zasad walidacji, które powinny zawierać określone pola. Jednak w MongoDB w celu zapewnienia integralności i spójności danych można ustawić reguły walidacji za pomocą WALIDATORA SCHEMATU JSON |
Upuszczanie stołu | | To są instrukcje usuwania tabeli dla MySQL i kolekcji w przypadku MongoDB. |
Dodanie nowej kolumny o nazwie join_date Usuwanie kolumny join_date, jeśli jest już zdefiniowana | Dodanie nowego pola o nazwie join_date Spowoduje to zaktualizowanie wszystkich dokumentów w kolekcji, tak aby data dołączenia była datą bieżącą. Usunięcie pola daty dołączenia, jeśli zostało już zdefiniowane Spowoduje to usunięcie pola data_połączenia ze wszystkich dokumentów kolekcji. | Zmienianie struktury schematu przez dodanie lub upuszczenie kolumny/pola. Ponieważ architektura MongoDB nie narzuca ściśle struktury dokumentu, dokumenty mogą mieć różne pola. |
Tworzenie indeksu z kolumną UserId rosnąco i Age malejąco | Tworzenie indeksu obejmującego pola UserId i Age. | Indeksy są zazwyczaj tworzone w celu ułatwienia procesu zapytania. |
| | Wstawianie nowych rekordów. |
| | Usuwanie rekordów z tabeli/kolekcji w wieku 25 lat. |
| | Usuwanie wszystkich rekordów z tabeli/kolekcji. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników ze wszystkimi kolumnami/polami. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników z kolumnami/polami/polami dotyczącymi wieku, płci i klucza podstawowego. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników z kolumnami/polami Wiek i Płeć. Klucz podstawowy jest pominięty. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Płeć jest ustawiona na M. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników tylko z wartością Płeć, ale której wartość Wiek jest równa 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Płeć jest ustawiona na F, a Wiek to 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Wiek nie jest równa 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Płeć jest ustawiona na F lub Wiek to 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Wiek jest większa niż 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Wiek jest mniejsza lub równa 25. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Name zawiera litery He. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Gender jest ustawiona na F i sortuje ten wynik w porządku rosnącym kolumny id w przypadku MySQL i czasu wstawionego w przypadku MongoDB. |
| | Zwraca wszystkie rekordy z tabeli/kolekcji użytkowników, których wartość Gender jest ustawiona na F, i sortuje ten wynik w kolejności malejącej kolumny id w przypadku MySQL i czasu wstawionego w przypadku MongoDB. |
| lub | Zlicza wszystkie rekordy w tabeli/kolekcji użytkowników. |
| lub | Zlicza wszystkie rekordy w tabeli/kolekcji użytkowników, które mają wartość właściwości Nazwa. |
| lub | Zwraca pierwszy rekord w tabeli/kolekcji użytkowników. |
| | Zwraca pierwszy rekord w tabeli/kolekcji użytkowników, który ma wartość Płeć równą F. |
| | Zwraca pięć rekordów w tabeli/kolekcji użytkowników po pominięciu pierwszych pięciu rekordów. |
| | To ustawia wiek wszystkich rekordów w tabeli/kolekcji użytkowników, którzy mają wiek od 25 do 26 lat. |
| | Zwiększa to wiek wszystkich rekordów w tabeli/kolekcji użytkowników o 1. |
| | Powoduje to zmniejszenie wieku pierwszego rekordu w tabeli/kolekcji użytkowników o 1. |
Aby centralnie i z jednego miejsca zarządzać MySQL i/lub MongoDB, odwiedź:https://severalnines.com/product/clustercontrol.