问题四:对于未来的12306,有网友建议可以采用NOSQL,你是如何看待的?
叶萌:首先要搞清楚NOSQL是怎么来源的, NOSQL技术出现最主要的原因,就是随着互联网模式的发展,数据量日渐增大,这些数据量用数据库尤其是关系型数据库处理不过来,这是NOSQL发展的背景。
关系型数据库最大的问题就是对这个数据一致性的保障最好,因为它支持一些原子操作、事务处理这些东西,所以它对一致性处理是最好的。互联网上大量的数据对一致性的需求没有交易系统这么高,所以NOSQL的技术主要是在放松了对数据一致性要求的前提下发展起来的一种数据处理技术。所以NOSQL的一个特点,它放松了对数据一致性的需求,获得了性能的提升和吞吐量的提升。
从这个特点来看,要不要用这个NOSQL的技术,跟我们在做什么样的事情非常有关系。如果这些数据用来做一些分析等等,那用NOSQL技术固然很好,因为做这些东西首先它通常是线下做,而且前一秒和后一秒钟数据有一定的误差不会对你的统计结果产生很明确的干扰。
但是,据我知道,没有人用NOSQL的技术做交易系统。因为数据一致性对交易系统是第一位的需求,买到了就是买到了,买不到就是买不到,不能说在这一刻既可以买到又可以不买到,这个是大家不能接受的。所以对于交易型的系统用NOSQL技术来提高性能是有问题。
但是NOSQL的技术在类似12306的这种网站里不是不能用,它可以在做状态查询的时候用到,比如查有票没票,这时候数据一致性的需求没有那么高。