Baza danych My MySQL zawiera kilka tabel z różnymi silnikami pamięci masowej (w szczególności myisam i innodb). Jak mogę się dowiedzieć, które stoły są przy użyciu jakiego silnika?Jak mogę sprawdzić typ silnika MySQL dla konkretnej tabeli?
Odpowiedz
SHOW TABLE STATUS WHERE Name = 'xxx'
to daje (między innymi) kolumny Engine
, która jest, co chcesz.
SHOW CREATE TABLE <tablename>;
Mniej można parsować, ale bardziej czytelny niż SHOW TABLE STATUS
.
lub po prostu
show table status;
tylko, że będzie to LList wszystkie tabele w bazie danych.
Z jakiegoś powodu zwraca 0 wierszy w moim przypadku ... –
@NikolaiSamteladze, Czy masz tabele w wybranym db? – Pacerier
Aby wyświetlić listę wszystkich tabel w bazie danych i ich silników, należy użyć tej kwerendy SQL:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
Wymień dbname
z nazwą bazy danych.
Trochę dopracowujemy odpowiedzi Jocker (wtedy zamieścić jako komentarz, ale nie mam jeszcze wystarczająco dużo karmy):
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Wyklucza to MySQL widoki z listy, które nie mają silnik.
SHOW CREATE TABLE <tablename>\G
sformatuje jest dużo ładniejszy niż na wyjściu
SHOW CREATE TABLE <tablename>;
\G
Sztuką jest również przydatny do zapamiętania dla wielu innych zapytań/poleceń.
\ G Hack jest tylko pod cli mysql – gaRex
przejdź do bazy danych info_schema tam znajdziesz tabelę tabel, a następnie wybierz ją;
Mysql> use information_schema; Mysql> wybierz table_name, silnik z tabel;
mysqlshow -i <database_name>
wyświetli informacje o wszystkich tabelach określonej bazy danych.
mysqlshow -i <database_name> <table_name>
zrobi to tylko dla określonego stołu.
To nie odpowiada na pytanie, ponieważ wyświetla silniki dla wszystkich tabel. Inicjatorem pytania było poszukiwanie informacji dotyczących konkretnej tabeli. – Tass
Jeszcze innym sposobem, chyba najkrótsza, aby uzyskać status jednym lub dopasowane zestaw tabel:
SHOW TABLE STATUS LIKE 'table';
Następnie można użyć LIKE operatorów na przykład:
SHOW TABLE STATUS LIKE 'field_data_%';
Jeżeli jesteś użytkownik linux:
Aby wyświetlić silniki dla wszystkich tabel dla wszystkich baz danych na serwerze mysql, bez tabel information_schema
, mysql
, performance_schema
:
less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t)
Może się to spodoba, jeśli jesteś na Linuksie.
Powoduje otwarcie wszystkich informacji dotyczących wszystkich tabel w pozycji less
, naciśnij przycisk -S
, aby rozciąć zbyt długie linie.
Przykâadowa:
--------------------information_schema--------------------
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time C
CHARACTER_SETS MEMORY 10 Fixed NULL 384 0 16434816 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATIONS MEMORY 10 Fixed NULL 231 0 16704765 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATION_CHARACTER_SET_APPLICABILITY MEMORY 10 Fixed NULL 195 0 16357770 0 0 NULL 2015-07-13 15:48:45 NULL N
COLUMNS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
COLUMN_PRIVILEGES MEMORY 10 Fixed NULL 2565 0 16757145 0 0 NULL 2015-07-13 15:48:45 NULL N
ENGINES MEMORY 10 Fixed NULL 490 0 16574250 0 0 NULL 2015-07-13 15:48:45 NULL N
EVENTS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
FILES MEMORY 10 Fixed NULL 2677 0 16758020 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_STATUS MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_VARIABLES MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
KEY_COLUMN_USAGE MEMORY 10 Fixed NULL 4637 0 16762755 0
.
.
.
Jeśli używasz MySQL Workbench, można kliknąć prawym przyciskiem myszy tabelę i wybierz 'alter table'.
W tym oknie można zobaczyć swój silnik tabeli, a także go zmienić.
- 1. Jak sprawdzić, czy TOAST działa na konkretnej tabeli w postgresie
- 2. Jak zmienić typ silnika pamięci masowej w MySQL?
- 3. jQuery alternatywne kolory wierszy tabeli dla konkretnej tabeli
- 4. Zapytanie MYSQL dla tabeli
- 5. Wiązanie silnika tabeli Python do Tokyo Cabinet
- 6. MySQL: Najmniejszy typ danych dla jednego bitu
- 7. Sprawdzanie MySQL dla awarii tabeli
- 8. Ustawianie ostrości lektora dla konkretnej komórki tabeli w uitableview (UIAccessibility)
- 9. Jak włączyć logowanie tabeli SQL w mysql
- 10. Jak mogę sprawdzić <typ wejściowy = "plik"> w Angular2?
- 11. Jak mogę sprawdzić, czy typ jest podtypem typu w Pythonie?
- 12. Jak wyświetlić wszystkie dostępne widoki konkretnej tabeli w SQLite?
- 13. SML Jak sprawdzić typ zmiennej?
- 14. Jak sprawdzić typ widżetu widoku?
- 15. Zapytanie, aby sprawdzić, czy wyzwalacz istnieje w tabeli MYSQL
- 16. Jak sprawdzić typ bazy danych w migracji Rails?
- 17. Monitorowanie aplikacji dla silnika aplikacji Google java
- 18. Jak mogę liczyć kolumny tabeli
- 19. MySQL Workbench: próba utworzenia pola logicznego dla tabeli
- 20. Mysql: Jak sprawdzić wyjątkowość pary
- 21. zmiana domyślnego silnika mysql na innodb
- 22. Jak sprawdzić, czy komputer jest instancją silnika Google Compute Engine
- 23. Aktualizacja dużej tabeli MySQL
- 24. jquery, jak sprawdzić typ odpowiedzi dla wywołania ajax
- 25. Duplikat wejście na klucz „PRIMARY” dla każdego zapytania INSERT próbuję w konkretnej tabeli
- 26. Jak sprawdzić, czy mysql wraca null/empty
- 27. Uzyskiwanie liczby wierszy dla tabeli w MySQL?
- 28. MySQL bardzo wolno dla zapytania tabeli zmian
- 29. Silnik pamięci Mysql dla tabeli logów
- 30. Replikacja dwukierunkowa dla tej samej tabeli MySQL
Jeśli moja tabela jest uszkodzony, to po prostu pokazuje Silnik = NULL i ma „Komentarz” mówi mi do naprawy tabeli. Zanim jednak dowiem się, jak naprawić stół, domyślam się, że muszę znać silnik (nie dotarłem tak daleko, aby być szczerym.) Dlatego komentarz @ Jockera poniżej był dla mnie o wiele bardziej pomocny. – harperville
@Greg, czy powinniśmy użyć tego rozwiązania lub Jockera? – Pacerier
@Pacerier - Oba działają dobrze. Różnica polega na tym, że to rozwiązanie podaje informacje dla jednej tabeli, podczas gdy rozwiązanie Jockera pokazuje typ silnika dla wszystkich tabel w bazie danych (chociaż jest również nieco bardziej czytelny). – kramer65