Jak mogę sprawdzić typ silnika MySQL pod kątem konkretnej tabeli?
Moja baza danych MySQL zawiera kilka tabel wykorzystujących różne silniki pamięci masowej (w szczególności myisam i innodb). Jak mogę dowiedzieć się, które tabele są używasz którego silnika?
11 answers
SHOW TABLE STATUS WHERE Name = 'xxx'
To da ci (między innymi) kolumnę Engine
, która jest tym, czego chcesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-17 19:30:09
Aby wyświetlić listę wszystkich tabel w bazie danych i ich silników, użyj tego zapytania SQL:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
Zastąp dbname
nazwą bazy danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-28 08:07:49
SHOW CREATE TABLE <tablename>;
Mniej przetwarzalne, ale bardziej czytelne niż SHOW TABLE STATUS
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-12 13:08:52
Lub po prostu
show table status;
Tylko, że to wyświetli listę wszystkich tabel w Twojej bazie danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 04:29:20
Trochę podkręcona odpowiedź Jockera (wrzuciłbym 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;
To wyklucza widoki MySQL z listy, które nie mają silnika.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-12 16:31:17
SHOW CREATE TABLE <tablename>\G
Sformatuje go znacznie ładniej w porównaniu do wyjścia
SHOW CREATE TABLE <tablename>;
Sztuczka \G
jest również przydatna do zapamiętania dla wielu innych zapytań/poleceń.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-13 18:18:32
mysqlshow -i <database_name>
Wyświetli informacje dla wszystkich tabel określonej bazy danych.
mysqlshow -i <database_name> <table_name>
Zrobi to tylko dla konkretnej tabeli.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 13:44:33
Jeśli używasz stołu roboczego MySQL, możesz kliknąć tabelę prawym przyciskiem myszy i wybrać "Zmień tabelę".
W tym oknie możesz zobaczyć swój silnik tabeli i również go zmienić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 07:58:55
Jeśli jesteś użytkownikiem Linuksa:
Aby pokazać 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 Ci się to spodobać, jeśli przynajmniej jesteś na Linuksie.
Otworzy wszystkie informacje dla wszystkich tabel w less
, Naciśnij -S
, aby przeciąć zbyt długie linie.
Przykładowe wyjście:
--------------------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
.
.
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 13:52:16
Przejdź do bazy information_schema tam znajdziesz tabelę' tables ' i wybierz ją;
Mysql>use information_schema; Mysql> select table_name, engine from tables;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-01 08:28:44
Jeszcze jeden sposób, być może najkrótszy, aby uzyskać status pojedynczego lub dopasowanego zestawu tabel:
SHOW TABLE STATUS LIKE 'table';
Możesz wtedy użyć takich operatorów na przykład:
SHOW TABLE STATUS LIKE 'field_data_%';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-04 07:12:46