今天在操作mysql时有一个想法
就是:如何限每个库的大小呢,后来在百度搜结果,找到了一个比较有用的帖子
http://bbs.csdn.net/topics/390763667
总的来说,
---------------------------
Linux 2.2-Intel 32-bit                    2GB (LFS: 4GB)
Linux 2.4+(using ext3 filesystem)    4TB
Solaris 9/10                                16TB
NetWare w/NSS filesystem            8TB
win32 w/ FAT/FAT32                  2GB/4GB
win32 w/ NTFS                           2TB(可能更大)
MacOS X w/ HFS+                     2TB
--------------------------
mysql单个库是不有大小限制,也没办法从数据库层面去限制单个库的大小的,或者说磁盘的大小就是mysql所有库最大值,但可以从操作系统级别去限制文件的大小(quota),
mysql可以对:
账户每小时可以发出的查询数
账户每小时可以发出的更新数
账户每小时可以连接服务器的次数 除了以上找到的信息外,
我还百度了 "mysql 剩余空间" 关键字
也找到了一些结果和方法
如下:
1、数据库所占空间SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_SCHEMA = '数据库名';2、表所占空间SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_NAME = '表名';以上命令可以看到,我们是可以查询到单个数据库所用空间和所剩余空间,
那么简单推导一下,很容易想到,这两值相加是不是就是该库的最大空间呢?
但结全上面得到的信息以及数据库是会自动增加空间,那么这样的推导显然是不正确的.这些数据是不准确的为什么会有这些统计?那里方面会用到?
查询到的剩余空间,具体是什么剩余空间?是不是这些剩余空间用完了,就自动增加一定量的空间给数据?

解决方案 »

  1.   


    sql server中也有很多计算已使用空间和剩余空间的方法,而且计算出来的数据不一定一样。但是总体上,还是能自圆其说的。是这样的,总的空间,就是当前数据库的文件大小,而已用空间是指已经存储了数据的空间、删除数据之后的空间,而剩余空间一般是文件中的空间,但是这个空间还没有分配使用。当往表里添加数据,而空间不够时,就把这部分空间分配给表使用,如果这些空间也用完了,就会自动增长空间
      

  2.   

    我现在用阿里云的RDS,除这我在一楼列出来的方法,还有其它方法可以查询或是推导出该MYSQL库的最大大小吗?