发表于: 2016-10-14 10:16:17

3 2054


一、今天完成
1.完成了task5前端页面

2.又做了一波丁师兄那天的面试题,顺便考虑了下分库分表的关键字段怎么设计


二、明天计划
1.看下拦截器的功能及实现,把springMVC的配置搞完。

2.把读取数据库的注册、登录校验接口整出来。


三、遇到问题

1.花多了时间去测调面试的sql,没有完成计划2、3


四、收获
1.分库分表
因mysql的表引擎InnoDB能力限制,单表select阀值在200万左右。
对于面试题中的电商平台,用户记录、发布商品记录至少考虑亿条,交易记录至少考虑百亿条。因此,如果以mysql作为分布式的持久层库,分库分表是一定的,特别交易记录这种写操作频繁的表(硬盘本身读写速率在同一数量级,但软件层面上读操作是有页预读机制的,推测现实中读比写应该有数量级的速率优势)。

表id就是首先要考虑的因素,前两天看了下uuid的优势,csdn有个搞淘宝第三方的哥们博客里说目前淘宝对接不接受uuid要求整形。个人也觉得uuid那种32节的玩意儿太没效率(建索引速度慢),于是决定id用8字节的bigint。然後可以在service层做个规则将不同区域的IP分到不同的库(DB服务器)去写,降低单库写负载。读操作时可以利用“自定义规则生成值订单id%总库数”定位所属库。

然后,针对查操作较多的字段(如 时间,分类)建立b树索引,这样在select引用到相关字段时,速率会快很多,索引可以是本表多个字段,一张表可以建立多个索引,但是索引本身是占用存储空间的一种额外的数据结构,所以建太多会影响到写性能,因为每次插入都会让索引进行校验和变更。

2.axure做简单的页面
当自己做页面时(不要求js效果),可以用axure快速画个页面出来,这样我们这些不会写css的后端汪们也能拥有美丽的布局了!当然axure生成的html会有一大堆header引用,但是可以只留css相关的(仅几个),其他全部删掉,再自己配置下文件路径就好。



返回列表 返回列表
评论

    分享到