可扩展性设计之数据切分
14.2 数据的垂直切分
如何切分,切分到什么样的程度,是一个比较考验人的难题。只能在实际的应用场景中通过平衡各方面的成本和利益,才能分析出一个真正适合自己的拆分方案。
14.3 数据的水平切分
线路表现在很大,有50、60G,添加一个索引非常不方便。考虑如何水平切分。
每次新增一条线路的时候,有多少个出发城市,就会生成几个线路记录。
索引太多,影响更新的速度。
一个表的索引数量一般不超过15个。这个再确定一下。
索引问题参考文档:
http://hejiajunsh.iteye.com/blog/1955331
http://blog.csdn.net/zzq900503/article/details/17094633
http://imfei.blog.51cto.com/1849649/511689/
http://www.cnblogs.com/anywei/archive/2011/12/12/mysql.html
同样一条记录,根据id查询和根据remark查询,哪个查询效率更高?
根据id(int类型)查询效率高于sign_num(varchar(50)类型)查询效率。
SELECT a.* FROM table a WHERE a.sign_num ='OSH140806816';耗时0.687s
SELECT a.* FROM table a WHERE a.id =3824946;耗时0.044s
估计int类型建立的索引二叉树节省空间,varchar(50)类型建立的索引二叉树空间比较大,查询耗时长。