1 数据库操作系统是什么呢? 2 Linux 系统下,同一个目录下好像是有文件个数限制。你数据文件个数是否超出这个限制呢?
10,000个表?! 太厉害了。看你如何查询了?如果你只在一个或者几个表中查询,比如 select * from table1 则没什么差别查如果你这些表结构都是相同的,比如不同的班级或不同的日期单独为一张表。这样你查询全校,或全年的时候需要做大量的union 会有效率上的损失。第一种情况,则可以定时做一下数据重构,这样可以把碎片整理到一起。 第二种情况,则看看是不是需要优化数据设计了。
不会用到连接查询, 你的连接查询是指 join(联接) 还是 union(联合).有没有join对查询没什么影响,10000个表和3个表都对 select a.*,b.* from a inner jon b on a.id=b.id 可以说没什么影响,UNION的话,当然从两个表取数据不如直接从一个表中快 select * from a union all select * from b,但如果你不能合并表,比如把a,b所有记录放到一个表ab中,则也没什么可讨论的了。因为你别无选择 :-)
即是MYISAM OR INNOB? MYISAM的读速度比INNODB的快
table_cache 会受限制 会频繁open table close table 肯定会影响性能的
有的数据表可能数据较多,几W——10几W条,
有的数据表肯呢个数据较少(——后期工作我会将这些数据少的表合并)
字符编码:UTF8
2 Linux 系统下,同一个目录下好像是有文件个数限制。你数据文件个数是否超出这个限制呢?
第二种情况,则看看是不是需要优化数据设计了。
不会用到连接查询, 你的连接查询是指 join(联接) 还是 union(联合).有没有join对查询没什么影响,10000个表和3个表都对 select a.*,b.* from a inner jon b on a.id=b.id 可以说没什么影响,UNION的话,当然从两个表取数据不如直接从一个表中快 select * from a union all select * from b,但如果你不能合并表,比如把a,b所有记录放到一个表ab中,则也没什么可讨论的了。因为你别无选择 :-)
MYISAM的读速度比INNODB的快
会频繁open table
close table
肯定会影响性能的