mysql一个表最好多少条数据,为什么这么多?为什么不用oracle而用mysql?
一般而言,mysql一个表的数据量不要超过1000万,最好500万左右,这是由mysql的一些内部机制所决定的,
mysql的DDL实现
与oracle不同,mysql的DDL实现比较麻烦,以更改一个字段为例:
假如表T有一个A字段char(10),现在要将其改为20,mysql的实现为:
首先建立一个临时表TempT,这个表的实现为该过的T表,
其次将T中的数据全部倒到TempT中,
最后更换表名
所以,数据量越大的话,所耗的时间越长。
另外,mysql的索引机制也和oracle的不同,数据库的索引都是用b树来实现的,但是在mysql里面,b树的最后一层连接的不是数据
而是主索引,之后主索引顺序排列,这也是为什么在mysql里面为什么都会有一个id的列,没有用,但是必须要有,而且是auto_increment.
mysql的锁机制锁的不是单列,而是索引,所以当数据越来越多时,对数据上的修改也会造成长时间的block,此外,如果对于一个没有
索引的字段进行操作,则会导致整个表的block。
但对于oralcle的优势是,mysql可以很好的扩展,例如数据库的读写分离,可以一分二,二分四的很好的将读的压力分担给不同的读库,最后用写库保证读库们得统一