大多数情况下,当表中的记录数量增加时,检索速度会变慢,如果单个表的记录数量不多,但有很多数据表,
这样会不会影响检索和插入速度?
我做了一个简单的测试,创建了1万个空数据表,用MySQL Administrator 工具打开后就直接挂掉了,
我没做检索测试,不知在查询(单表或多表关联)是会不会有影响?
网络上有人说,超过1000个表就会影响性能,不知此说法是否有根据?
另外,MySQL对数据表的数量有限制吗,从官方文档中,没找到相关的说明。

解决方案 »

  1.   

    大多数情况下,当表中的记录数量增加时,检索速度会变慢,如果单个表的记录数量不多,但有很多数据表,
    这样会不会影响检索和插入速度?

    不影响我做了一个简单的测试,创建了1万个空数据表,用MySQL Administrator 工具打开后就直接挂掉了,
    1、你工具的原因,显示10000个表的信息它需要时间
    2、操作系统也有限制,同时能打开的表的文件句柄有限。另外同一目录下所能存放的文件在有些操作系统下也有限制。我没做检索测试,不知在查询(单表或多表关联)是会不会有影响?
    网络上有人说,超过1000个表就会影响性能,不知此说法是否有根据?
    无,但你同时打开1000个表显示不是什么好的设计方法,肯定比只打开一个表性能差,但这是不同的应用,没有可比性。另外,MySQL对数据表的数量有限制吗,从官方文档中,没找到相关的说明。
    有限制。 官方文档有这方面的说明。
      

  2.   


    另外,MySQL对数据表的数量有限制吗,从官方文档中,没找到相关的说明。
    有限制。 官方文档有这方面的说明。允许的最大值是多少呢?
      

  3.   

    有限制的。MYSQL的数据都保存在文件里面,每个操作系统对单文件的大小都是有不同的限制的。MySQL 3.22限制的表大小为4GB。由于在MySQL 3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567 – 1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。操作系统
     文件大小限制
     
    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
     
    Windows用户请注意: FAT和VFAT (FAT32)不适合MySQL的生产使用。应使用NTFS。在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸。请参见13.5.4节,“SHOW语法”。如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATE TABLE语句。请参见13.1.5节,“CREATE TABLE语法”。创建了表后,也可以使用ALTER TABLE更改这些选项,以增加表的最大允许容量。请参见13.1.2节,“ALTER TABLE语法”。
      

  4.   

    有很多限制,比如列上的,行上的,等等。不同的存储引擎也不同。
    打开个官方手册,然后搜索 "limitation"