需要按照功能点把系统拆分,拆分成独立的功能。单独为某一个节点添加服务器。需要系统之间配合才能完成整个业务逻辑。叫做分布式。集群:同一个工程部署到多台服务器上。优点:1、把模块拆分,使用接口通信,降低模块之间的耦合度。2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。4、可以灵活的进行分布式部署。缺点:1、系统之间交互需要使用远程通信,接口开发增加工作量。2、各个模块有一些通用的业务逻辑无法共用。
导入依赖的原则:1、所有的工程都需要的依赖应该在聚合工程(taotao-manage)中导入。2、在使用依赖的最底层导入。3、运行时所需要的依赖在web工程中加入。
人员配置产品经理:2人,确定需求以及给出产品原型图项目经理:1人,项目管理前端团队:3人,根据产品经理给出的原型制作出静态页面后端团队:8人,实现产品功能测试团队:3人,测试所有的功能运维团队:2人,项目的发布以及维护
开发周期采用迭代开发的方式进行,一般一次迭代的周期为一个月左右。
什么是FastDFSFastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
Redis优点1.支持多种数据类型存储2.支持持久化3.功能丰富4.简单稳定,基于c语言开发
Part2:经典题目
1、MySQL的复制原理以及流程
基本原理流程,3个线程以及之间的关联;
2、MySQL中myisam与innodb的区别,至少5点
(1)、问5点不同;
(2)、innodb引擎的4大特性
(3)、2者selectcount(*)哪个更快,为什么
3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
(1)、varchar与char的区别
(2)、varchar(50)中50的涵义
(3)、int(20)中20的涵义
(4)、mysql为什么这么设计
4、问了innodb的事务与日志的实现方式
(1)、有多少种日志;
(2)、事物的4种隔离级别
(3)、事务是如何通过日志来实现的,说得越深入越好。
5、问了MySQLbinlog的几种日志录入格式以及区别
(1)、binlog的日志格式的种类和分别
(2)、适用场景;
(3)、结合第一个问题,每一种日志格式在复制中的优劣。
6、问了下MySQL数据库cpu飙升到500%的话他怎么处理?
(1)、没有经验的,可以不问;
(2)、有经验的,问他们的处理思路。
7、sql优化
(1)、explain出来的各种item的意义;
(2)、profile的意义以及使用场景;
8、备份计划,mysqldump以及xtranbackup的实现原理
(1)、备份计划;
(3)、xtrabackup实现原理
9、mysqldump中备份出来的sql,如果我想sql文件中,一行只有一个insert....value()的话,怎么办?如果备份需要带上master的复制点信息怎么办?
.
11、innodb的读写参数优化
(1)、读取参数
(2)、写入参数;
(4)、缓存参数以及缓存的适用场景。
12、你是如何监控你们的数据库的?你们的慢日志都是怎么查询的?
13、你是否做过主从一致性校验,如果有,怎么做的,如果没有,你打算怎么做?
14、你们数据库是否支持emoji表情,如果不支持,如何操作?
15、你是如何维护数据库的数据字典的
16、你们是否有开发规范,如果有,如何执行的
17、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问
(1)、您是选择拆成子表,还是继续放一起;
(2)、写出您这样选择的理由。
18、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?
19、如何从mysqldump产生的全库备份中只恢复某一个库、某一张表?
开放性问题:据说是腾讯的
一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
Part3:奖励
欢迎大家积极讨论,答得好的币是少不了的。
本题目偏难,所以如果做不出,也不要灰心,如果真的能全部搞定,可以说你的基础很扎实,在北上广10K是少不了的。
也欢迎大家百度谷歌,借助一些工具来完成。
回复在下面即可。
Part4:答案
以下内容需要回复才能看到
1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
2.从:io线程——在使用startslave之后,负责从master上拉取binlog内容,放进自己的relaylog中;
3.从:sql执行线程——执行relaylog中的语句;
1>.InnoDB支持事物,而MyISAM不支持事物
2>.InnoDB支持行级锁,而MyISAM支持表级锁
3>.InnoDB支持MVCC,而MyISAM不支持
4>.InnoDB支持外键,而MyISAM不支持
5>.InnoDB不支持全文索引,而MyISAM支持。
插入缓冲(insertbuffer),二次写(doublewrite),自适应哈希索引(ahi),预读(readahead)
myisam更快,因为myisam内部维护了一个计数器,可以直接调取。