【问题标题】:How can I see how InnoDB stores my data, based on DB structure?如何根据数据库结构查看 InnoDB 如何存储我的数据?
【发布时间】:2013-11-23 06:16:24
【问题描述】:

是否有任何工具或命令可以显示 InnoDB 如何根据数据库结构存储我的数据库。 我想看看 InnoDB 如何存储我的表数据。我想改变表结构来改进删除查询。

我想看看结构如何影响删除查询的性能。

【问题讨论】:

  • 你的意思是物理文件存储在哪里?
  • 我想知道它是如何存储数据的。有多少页等,基本上是数据库统计。
  • ahsan,您正在寻找的答案是什么?
  • 没有任何图形工具,我可以在其中查看数据是如何物理存储在特定表中的吗?比如一个页面中存储了多少行?以及更改主键对我的表结构有何影响?
  • 别这么认为,您可以查询性能架构以获取其他信息。使用性能模式;从 events_statements_current 中选择 *;

标签: mysql database database-design innodb database-schema


【解决方案1】:

要检查它如何存储数据,您必须查看 MySQL 的文件夹。根据操作系统和位置设置,它会将其存储在每个表中或仅存储在一个大文件中。

要检查当前状态,请执行

SHOW STATUS

您也可以像这样将 WHERE 应用于此

SHOW STATUS WHERE variable_name like '%pages%'

这将详细显示变量名称中带有“页面”的任何状态。

为了检查你的系统有多大,我使用这个命令,这会将它分成每个表级别。

SELECT 
table_name AS `Table`,
concat(round(sum(table_rows)/1000000,2),'M') '# of rows',
concat(round(sum(data_length)/(1024*1024*1024),2),'G') 'Size of data',
concat(round(sum(index_length)/(1024*1024*1024),2),'G') 'Size of index',
concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') 'Total size',
round(sum(index_length)/sum(data_length),2) 'Index fraction'
FROM information_schema.TABLES
GROUP BY table_name;

这是你要找的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多