簡體   English   中英

我怎么知道mysql表是使用myISAM還是InnoDB引擎?

[英]How do I know if a mysql table is using myISAM or InnoDB Engine?

在MySQL中,無法為特定數據庫指定存儲引擎,僅針對單個表。 但是,您可以指定在一個會話期間使用的存儲引擎:

SET storage_engine=InnoDB;

因此,您不必為每個表指定它。

如果確實所有表都使用InnoDB,我如何確認?

如果使用SHOW CREATE TABLE,則必須從查詢中解析引擎。

從INFORMATION_SCHEMA數據庫中選擇是不好的做法,因為開發者保留隨時更改其模式的權利(盡管不太可能)。

要使用的正確查詢是SHOW TABLE STATUS - 您可以獲取有關數據庫中所有表的信息:

SHOW TABLE STATUS FROM `database`;

或者對於特定的表格:

SHOW TABLE STATUS FROM `database` LIKE 'tablename';

您將獲得的其中一個欄目是Engine。

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'

show create table <table>應該可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM