phpMyAdmin jest jednym z najsłynniejszych narzędzi do zarządzania bazą danych MySQL. Nie jest jednak doskonały, dlatego stworzono Adminer. W jakich obszarach Adminer jest lepszą alternatywą dla phpMyAdmin? Lista jest dość długa, a niektóre punkty mogą być dla Ciebie nieistotne. Najważniejsze różnice to:
W tabeli porównawczej znajduje się kilka zrzutów ekranu, które wyjaśniają różnicę.
Porównanie to miało miejsce w przeszłości i obecny stan może być inny. Nie mam dość energii, aby dokonać podobnego, dogłębnego porównania z obecnymi wersjami.
| Funkcja | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Komentarz |
|---|---|---|---|
| Obsługiwane systemy | MySQL | MySQL, SQLite, PostgreSQL, MS SQL, Oracle | Adminer jest również dostępny w wersji obsługującej wyłącznie MySQL. |
| Zaloguj się | częściowy | kompletny | Adminer oferuje stałe logowanie, w tym listę użytkowników, phpMyAdmin tylko częściowe wsparcie poprzez konfigurację. |
| Utwórz tabelę | niemądry | mądry | W phpMyAdmin musisz określić liczbę pól przed utworzeniem tabeli. Projekt formularza transponuje się w oparciu o liczbę pól. Administrator dodaje pola automatycznie. |
| Zmień tabelę | ograniczony | nieograniczony | phpMyAdmin nie może przenosić kolumn ani dodawać kolumn w różnych miejscach na raz (każda tabela zmian działa bardzo wolno, gdy jest stosowana do dużych tabel). Adminer może reorganizować kolumny i dodawać je w różnych miejscach na raz. |
| Typ wyliczeniowy | marny | wygodny | Adminer oferuje obszar tekstowy z jednym elementem w wierszu do tworzenia typu wyliczeniowego. |
| Indeksy | jeden na raz | naraz | Dodawanie indeksu jest powolną operacją w przypadku dużych tabel. Adminer umożliwia manipulację wszystkimi indeksami razem. |
| Klucze obce | ograniczony | kompletny | W phpMyAdmin nie można tworzyć wielokolumnowych kluczy obcych. Przed utworzeniem klucza obcego należy utworzyć indeks ręcznie. Adminer oferuje interfejs kluczy obcych bezpośrednio w tabeli tworzenia/zmieniania. |
| Widoki | bez zmiany | pełna obsługa | Nie można zmienić widoku w phpMyAdmin, należy go usunąć i utworzyć ponownie ręcznie. |
| Interfejs użytkownika | mylący | intuicyjny | Przykład, który ma zastosowanie w wielu różnych przypadkach: w nawigacji znajduje się ikona obok nazwy tabeli. Połowa użytkowników nie wie, że pełni ona inną funkcję niż nazwa tabeli, druga połowa nie jest pewna, jaka to funkcja. |
| Wyzwalacze, procedury, wydarzenia | nie twórz, zmieniaj ręcznie | pełna obsługa | phpMyAdmin nie oferuje interfejsu do tworzenia tych obiektów i ma jedynie prymitywną funkcjonalność do ich modyfikowania. |
| Procedury wywoływania | Tylko SQL | łatwy | Wywoływanie procedur składowanych i funkcji w phpMyAdmin jest możliwe jedynie poprzez utworzenie zapytania SQL. Adminer oferuje łatway interfejs. |
| Wybieranie danych | brak | funkcje, grupowanie | Adminer umożliwia grupowanie wyników i nakładanie funkcji na kolumny w instrukcjach Select. Istnieje także możliwość zamówienia kilku kolumn jednocześnie. W phpMyAdmin brakuje tych funkcji. |
| Pobieranie pola typu blob | dodatkowe tabele | automatyczny | Pobranie zawartości pola typu blob w phpMyAdmin jest możliwe jedynie poprzez utworzenie dodatkowych tabel, określenie ich w konfiguracji i ręczne zaznaczenie pól do pobrania. Adminer umożliwia pobranie dowolnego obiektu blob. |
| Kontakty | dodatkowe tabele | automatyczny | Aby powiązać dane za pomocą kluczy obcych, musisz utworzyć dodatkową tabelę i określić ją w konfiguracji phpMyAdmin. |
| Edycja zbiorcza | nieobecny | obecny | W phpMyAdmin nie ma możliwości zmiany wartości pola dla kilku wierszy jednocześnie. Adminer oferuje modyfikacje względne i bezwzględne. |
| Wielokrotna edycja | skomplikowany | trywialny | Na przykład, aby naprawić literówki w dziesięciu wierszach: Musisz wybrać te wiersze w phpMyAdmin, edytować je, ponownie znaleźć literówki i zapisać. W Adminerze kliknij literówkę z wciśniętym klawiszem Ctrl i zapisz. |
| Klonuj wiersz | podatny na błędy | bezpieczna | phpMyAdmin oferuje funkcję klonowania wiersza po standardowej edycji, dlatego możliwe jest omyłkowe nadpisanie wiersza. Adminer ma specjalny przycisk, który wyświetla się przed wykonaniem tej operacji. |
| Schemat | dodatkowe tabele | zawsze | Schemat w phpMyAdmin jest dostępny dopiero po skonfigurowaniu i określeniu dodatkowych tabel w pliku konfiguracyjnym i tylko poprzez plik PDF lub <canvas>. Adminer używa HTML i JavaScript. |
| Synchronizacja | wymaga zdalnego dostępu | działa wszędzie | Funkcja synchronizacji phpMyAdmin nie działa bez zdalnego dostępu do serwera, który jest zwykle wyłączony przez zaporę sieciową. Adminer stosuje inne podejście – może utworzyć eksport ALTER, który generuje polecenia alter w celu synchronizacji docelowej bazy danych ze źródłem po uruchomieniu na zdalnym serwerze. |
| Lista baz danych | powolna | szybka | Lista bazy danych jest powolna, ponieważ wyświetla liczbę tabel. Adminer pobiera te dane asynchronicznie. |
| Zmienne stanu | jednowierszowe podsumowanie | oficjalna dokumentacja | phpMyAdmin wyświetla podsumowanie on-line dla niektórych zmiennych statusu, Adminer łączy do oficjalnej dokumentacji. |
| Zmienne | brak opisu | oficjalna dokumentacja | phpMyAdmin nie wyświetla żadnego opisu zmiennych, Adminer prowadzi linki do oficjalnej dokumentacji. |
| Wiele kart przeglądarki | blokujący | nieblokujący | Kiedy jedna karta przeglądarki wykonuje długą operację, nie jest możliwa praca z phpMyAdminem na innej karcie. Z drugiej strony Adminer jest współbieżny i nieblokujący. |
| Zapytania SQL | jeden wynik | kilka wyników | Adminer może wyświetlić wyniki oddzielnych zapytań SQL na jednej stronie. |
| Podświetlanie składni | bez linków | linki do dokumentacji | Adminer udostępnia łącza do dokumentacji wszystkich słów kluczowych SQL. |
| Skróty klawiaturowe | obstrukcyjny | poręczny | W phpMyAdmin, Ctrl+Lewo/Prawo nie powoduje przeskakiwania słów, jak to jest w standardzie, lecz umożliwia przemieszczanie się pomiędzy polami. W Adminerze skróty klawiaturowe działają zgodnie z oczekiwaniami: Tab w obszarze tekstowym SQL działa, a Ctrl+Enter wysyła formularz. |
| Skórki | 6 | 8 | Skórka phpMyAdmin wymaga stworzenia ponad 100 ikon. |
| Personalizacja | dodatkowe tabele | Klasa PHP | phpMyAdmin oferuje bardzo proste dostosowania za pomocą specjalnych tabel. Adminer oferuje zaawansowaną personalizację poprzez klasę rozszerzenia PHP. |
| Ogólna wydajność | powolna | szybka | Adminer jest średnio o 28% szybszy (według niezależnego testu Juraja Hajdúcha). |
| Błędy bezpieczeństwa naprawione w 2010 roku | 10 | 1 | phpMyAdmin nadal nie rozwiązuje poważnych problemów związanych z bezpieczeństwem, takich jak ClickJacking z tej samej domeny lub wyciek stron odsyłających. |
| Powiadomienia o nowej wersji | wewnątrz Adminera | Możesz subskrybować powiadomienia e-mail w phpMyAdmin. Adminer jest łatwiejszy w użytkowaniu: dostępność nowej wersji wyświetla się automatycznie w samym Adminerze. Obydwa narzędzia mają także kanał RSS. | |
| Liczba plików | 879 | 1 | Kod źródłowy Adminera jest dobrze zorganizowany i przechowywany w 70 plikach. Ostateczna, jednoplikowa wersja jest wynikiem kompilacji i minifikacji. |
| Rozmiar | 15 126 kB | 291 kB | Liczba plików i rozmiar stają się widoczne podczas instalowania/kopiowania aplikacji na zdalny serwer. Instalacja Adminera jest bardzo prosta. |
| Licencja | GPL | GPL lub Apache | Licencja GPL jest dość restrykcyjna – wymaga, aby produkty pochodne również były objęte GPL. |
| Wymagania | PHP 5.2+, MySQL 5+ | PHP 4.3+, MySQL 4.1+ | Adminer działa nawet ze starszymi wersjami PHP i MySQL. Aby działać w starszych wersjach, phpMyAdmin wymaga aktualizacji na niższą wersję. |
| Konfiguracja | zwykle konieczne | konfiguracja zerowa | phpMyAdmin zwykle wymaga przynajmniej pewnej konfiguracji, Adminer po prostu działa. |
Aby być uczciwym, istnieją również pewne obszary, w których phpMyAdmin przewyższa Adminera:
| Funkcja | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Komentarz |
|---|---|---|---|
| Języki | 7/57 aktualne | 17/17 aktualne | Prawie wszystkie tłumaczenia w phpMyAdmin są niekompletne. Obydwa narzędzia obsługują popularne języki, w tym RTL, a oprócz wersji wielojęzycznej oba narzędzia mają wersję wyłącznie w języku angielskim. Utwórz nowe tłumaczenie (jeśli jesteś native speakerem). |
| Eksportuj formaty | 16 (LaTeX, Texy!, ...) | 3 (SQL, CSV, TSV) | Eksport bazy danych do LaTeX-a to zadanie, z którym na co dzień boryka się większość programistów. |
| Pliki do pobrania w dniu 11/2010 | 280 000 | 7 000 | Możesz zamienić w tym miesiącu! |
Prezentacja z konferencji O'Reilly MySQL: pobierz.
AdminNeo is a fork of Adminer 4. However, Adminer 5 made significant internal improvements which weren't ported back to AdminNeo.
| Funkcja | Adminer 4.8.1 | AdminNeo 5-dev | Adminer 5.1.1 | Komentarz |
|---|---|---|---|---|
| Type declarations | nowhere | somewhere | everywhere | Adminer has PHP type declarations for all functions and also for class variables. AdminNeo has them only with couple of functions. |
| Global variables | 23 | 23 | 0 | Adminer doesn't use global variables, AdminNeo needs 23 global variables. |
| Ignored PHP errors | notices, strict and deprecated | notices and deprecated | deprecated | Adminer code is compatible with E_NOTICE, AdminNeo ignores these errors. |
| PHPStan | unchecked | unchecked | level 6 | Adminer passes PHPStan level 6 with documented exceptions. AdminNeo doesn't do static analysis. |
| Coding style | unspecified | unspecified | checked | Adminer checks code style with PHPCS. AdminNeo coding style is inconsistent even e.g. in doc-comments. |
| Running from sources | works | unsupported | works | Adminer can run from source codes, AdminNeo needs a compilation step. |
| Loading plugins | cumbersome | cumbersome | trivial | Adminer autoloads plugins from adminer-plugins/. AdminNeo needs a cumbersome setup. |
| Available designs | 30 | 3 | 30 | AdminNeo dropped support for all existing designs. |
| Required PHP version | 5.0+ | 7.1+ | 5.3+ | Adminer source codes now use PHP 7.4 but the compiled file still runs on PHP 5.3. |
| Tests | 1 suite | 1 suite | 13 suites | Adminer has end-to-end tests for 13 different drivers, AdminNeo tests only MySQLi. |
| JavaScript | ancient | ancient | modern+checked | Adminer uses let/const and checks the code with ESLint. AdminNeo heavily uses var and doesn't check the code. |
| Developer documentation | missing | missing | 9 pages | Adminer has extensive documentation for new developers. AdminNeo has no developer documentation. |
| Dark mode | unsupported | automatic | automatic and manual | AdminNeo supports dark mode based on user preferences. Adminer too and it also has a plugin for manual switching. |
| Mobile version | ugly | menu hidden | menu hidden | Both AdminNeo and Adminer hide menu on mobile. |
| Configuration | zero-conf | available | zero-conf | Adminer works out of the box and can be customized with plugins. AdminNeo can configure some features with a config. |
| File size | 477 kB | 630 kB | 485 kB | AdminNeo compiled file is valid UTF-8, Adminer compiled file is binary. |
| Columns reordering | not supported | supported | not supported | AdminNeo supports changing the order of columns in select. It also has drag-and-drop in alter table. |
| Compilation | single driver | any combination | single driver | Adminer compiles into a version with all drivers or a single driver version. AdminNeo supports compilation with any combination of drivers. |