mysql是内存数据库,数据本身是不存储在硬盘的,每次重启的时候需要通过日志和检查点把全部数据都装载到内存。
对于数据的活动比率很低的数据库而言,这对内存的浪费非常可观。启动的时间也是难以忍受。
而且mysql-cluster的记录是定长的,也就是说varchar等可变长的东西是直接占用最大的内存空间的。
其他的问题可能还有,接触一周时间暂时就发现这些。
虽然说mysql-cluster文档里有提过disk table的方式,指定特定的表到创建好的表空间文件中,但这需要mysql-5.1.6以后的版本,我在网上找了很久,官网上mysql-cluster只有mysql5.1.47-cluster-7.1.5。5.1.6之后的版本找不到相应的cluster版本。新的mysql5.5或者5.6或者6.0的源码包里的ndbcluster则根本连版本号都没有,而且windows下似乎不提供ndbcluster的支持。
需要分布性,可扩展性的话有drdb,需要内存缓冲的话有query cache和memcached。有点搞不太懂mysql-cluster的定位。
对于数据的活动比率很低的数据库而言,这对内存的浪费非常可观。启动的时间也是难以忍受。
而且mysql-cluster的记录是定长的,也就是说varchar等可变长的东西是直接占用最大的内存空间的。
其他的问题可能还有,接触一周时间暂时就发现这些。
虽然说mysql-cluster文档里有提过disk table的方式,指定特定的表到创建好的表空间文件中,但这需要mysql-5.1.6以后的版本,我在网上找了很久,官网上mysql-cluster只有mysql5.1.47-cluster-7.1.5。5.1.6之后的版本找不到相应的cluster版本。新的mysql5.5或者5.6或者6.0的源码包里的ndbcluster则根本连版本号都没有,而且windows下似乎不提供ndbcluster的支持。
需要分布性,可扩展性的话有drdb,需要内存缓冲的话有query cache和memcached。有点搞不太懂mysql-cluster的定位。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货