一个数据库的某一张表的查询速度会否跟整个数据库的大小相关?如果相关,会很严重吗?
我现在是这种情况,想测试一张大表的查询速度625万条记录, 整个数据库大小在10g的时候 还是挺快的。 但是 当数据库编程20g的时候,速度就很慢了,大概变成原来的两倍。 这是为什么?(我查询的表的数据量并没有变化,只是我导入了另外几张没有关系的大表)

解决方案 »

  1.   

    如果你用的是MYISAM存储引擎则没什么影响。
    如果你用的是INNODB则文件越大,操作时间越慢,这是由操作系统的文件IO决定的。
      

  2.   

    台式机性能是没有问题的。  6核的,8g的内存
    我是新手,请问 MYISAM,INNODB  是系统自带的吗?  如果是 ,在什么时候指定?还有是如何指定? 谢谢
      

  3.   

     是 create table ...时指定 create table .... engine=myisam建议楼主先下载免费的MYSQL官方手册,并粗览一下。 帮助手册是回答这此初学者问题的最好工具。
      

  4.   

    对了  还有问题,  mysql 如果有设置主键会否跟oracle 一样默认创建索引?  
      

  5.   

    假设1个表有用,999个废表。假设那999个表,999个文件从来不会被打开,不会被查询。
    速度会否跟整个数据库的大小相关?---我觉得基本无关,或关系很小。从一个目录中打开一个文件和从一个mount的压缩文件中打开一个文件速度我感觉应该差不多。---myisam和innodb的原理跟此类似吧。测试的话,可以用命令跟踪mysql占用的内存,和io。也可以细化成,某语句占用的内存和io。来判断。
      

  6.   

    我测试T1(1条记录)INNODB。T2(1)INNODB,SELECT * FROM T1;
    然后把T2加到500W条记录,再查SELECT * FROM T1;
    发现没有任何区别。版主说的情况,能否详细点。
      

  7.   

    你数据库里面的数据多了之后,cache/data的比例就降低了,速度势必慢,因为大家一起竞争十分有限的cache和io,你可以试验一下,当然如果你把那些大表放在那里,一点都不访问,那速度肯定不会受到影响了。