linux mysql
无意中工具检查一个表的大小   , 该表300000行 ,每行76字节 ,总共232。2m
这样的表有 10多个在同1苦 adb里  (该表的大小是运行时的大小)我登录到该服务器 du -sh 目录
结果只有1。9m (这个大小是物理文件 a.frm 等 总共的大小)  
想知道dbms是如何计算表大小的  (为什么运行时表的大小和实际物理文件大小差别会那么大) ?

解决方案 »

  1.   


    a.frm 文件只不过是表的定义文件。不包含数据!
      

  2.   

    那么想知道mysql的数据是放在什么地方。 我知oracle  sqlserver 都可以看到  的 。他的数据物理文件在哪里??
      

  3.   

    因为为开发人员服务的时候 发现每次mysqldump很耗时间,oracle有1个很强的功能 是停服务后 直接把该mydb目录的数据库 copy到目的机器的制定目录覆盖同名的db,
    之后在目的机器上重启数据库服务就可以的不知道mysql是否有这个功能 (冷备份)??----------我必须知道他的数据文件放在设么地方。前面帖子说的是他的表定义文件
      

  4.   

    ibdata  windows下 
            linux也是这样的这样mysql 和oracle还不是一样的 没有没办法使用冷备份
      

  5.   


    如果是MYISAM则在本目录下,除t2.frm 还会有  t2.myd, t2.MYI
    12/31/2009  04:13p               8,644 t2.frm
    02/25/2010  12:15a                 560 t2.MYD
    02/25/2010  12:15a               2,048 t2.MYI如果是 innodb,则数据文件在datadir对应目录中的ibdata中建议你参考一下手册中存储引擎中的介绍。
      

  6.   


    你也可以添加innodb_file_per_table配置,使每个表位于各自.idb文件下