- MySQL存储引擎通常有哪3种?各自分别有什么特点?应用场景是哪些?
- jar 格式?
- 开发程序时,怎样快速找到自己需要的类和库?需要注意哪些问题?
- Java开发分库分表需要解决的问题及mycat是怎样实现分库分表的?
MySQL存储引擎通常有哪3种?各自分别有什么特点?应用场景是哪些?
在当前的后台开发中,MySQL应用非常普遍,企业在选拔java人才时也会考察求职者诸如性能优化、高可用性、备份、集群、负载均衡、读写分离等问题。想要成为高薪Java工程师,一定要熟练掌握MySQL,接下来给大家分享MySQL数据库应用场景知识。
1、单Master
单Master的情况是普遍存在的,对于很多个人站点、初创公司、小型内部系统,考虑到成本、更新频率、系统重要性等问题,系统只依赖一个单例数据库提供服务,基本上已经满足需求。单Master场景下应该关注四点:数据备份(冷备、热备、温备)、数据还原、备份监控、数据文件远程存储。
2、一主一从
考虑一主一从的多数初衷是系统性能和系统高可用性问题,除了单Master场景中的备份工作需要做好以外,还有性能优化、读写分离、负载均衡三项重点工作需要考虑。
3、一主n从
一旦开始考虑一主多从的服务器架构,则证明你的系统对可用性、一致性、性能中一种或者多种的要求比较高。好多系统在开始搭建的时候都会往这个方向看齐,这样“看起来”系统会健壮很多。一主n从关注的重点是:数据一致性、脑裂、雪崩、连接池管理。
jar 格式?
JAR文件(J***a归档,也是一种压缩格式,英语全程:J***a Archive)是一种软件包文件格式,通常用于聚合大量的J***a类文件、相关的元数据和***(文本、图片等)文件到一个文件,以便开发J***a平台应用软件或库。
JAR文件是一种归档文件,以ZIP格式构建,以.jar为文件扩展名。用户可以使用JDK自带的jar命令创建或提取JAR文件。也可以使用其他zip压缩工具,不过压缩时zip文件头里的条目顺序很重要,因为Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。
开发程序时,怎样快速找到自己需要的类和库?需要注意哪些问题?
不同的语言有不同的引库。比如j***a要快速查找方法可以通过eclipse菜单栏上的search—file—j***a search—下边有个radio button选中method,然后搜索就可以了,比用api文档方便。或者在api里有索引这一项,直接输入查询就可以。
其实我没有太明白题主的意思,我理解的是项目缺少某一个类或者库,怎么去寻找这个类是在哪个库里,这个库又能去哪找到。
别的语言不了解,只能按照J***a来说明。(看到类和库的叫法,第一反应是不是别的语言的称呼,还搜索了一番,不过J***a里面好像也有类和库的叫法,不过我还是习惯叫类和Jar)。
在没有接触过M***en之前,我常用一个网站:findjar***,每当系统报了找不到XXX类的时候,我又不知道我少引入哪个Jar包,我都会去这个网站搜索一下,非常的好使。
后来项目基本上都用M***en构建了,所以找不到什么包的话,都会去M***an的中央仓库上去找。
J***a开发分库分表需要解决的问题及mycat是怎样实现分库分表的?
公司做了自己的分库分表组件,下面就自己的经验来看下分库分表的优点和碰到的问题!
何为分库分表?***取一定的策略将大量的表数据分布在不同的数据库,表中实现数据的均衡存储!
分库分表的背景:随着信息数据的急剧增长,单点数据库会有宕机,或者单库单表性能低下,查询和存储效率低的问题,使用分库分表实现数据的分布存储,性能更好,[_a***_]现在数据量多,用户需求高的特点!
分库分表的优点:数据分布在不同的数据库中,单表数据量低,查询速度快!可以在每个节点搭建集群防止数据丢失!
分库分表遇到的问题:
1,多库多表需要不重复的ID生成策略,但是数据重复!
解决方案:UUID,全局序列号等等!
解决方案:1,使用时间段或者ID等进行划分,可持续扩展(会带来别的问题),2,数据重新迁移!
3,连接查询,统计等出现困难: