1、从MySQL 3.23开始,MySQL单表最大限制就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储 引擎单表大小限制已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面的文件系统来决定了。
2、没有人会那么去存数据的,因为查询速度太慢了,这时候就分表了,比如垂直分割,水平分割等等
早期版本是这样说的:mysql每个数据库最多可创建20亿个表,一个表允许1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。SQL Server对每个表中行的数量没有直接限制,但它受数据库存储空间的限制。每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系统表和其它数据库对象所占用的空间。怎么保证mysql查询在20毫秒内先优化sql,索引,缓存;然后考虑返回的结果集,表中的数据量大小,结合你的cpu,内存,网络延迟,读写磁盘的时间,来评估。这几个条件相互制约。
表中的总数据量不超过mysql建议的量(300W还是500W?记不住),返回有限的结果集,有实现的可能。
数据库性能,能满足应用需求就可以,没必要非得达到某个量级。很多优化付出与产出不成比例。能做一些简单调整能优化到20ms取到结果是值得的。不设计慢得想蜗牛一样的系统是个好的理念。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)