mysql项目总结_卡包项目-总结(示例代码)

1. 主要开发框架及工具

JDK1.8 + mysql + SpringBoot + Hbase + Redis + Kafka

mysql :

1. 关系型数据库(由多张能互相连接的二维行列表格组成的数据库)

2. mysql索引的数据结构B+树

B+树是对B树的一种变形树,它与B树的差异在于:

有k个子结点的结点必然有k个关键码;

非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。

树的所有叶结点构成一个有序链表,可以按照关键码排序的次序遍历全部记录。

3层的b+树可以表示上百万的数据,如果上百万的数据查找只需要三次IO,性能提高将是巨大的,如果没有索引,每个数据项都要发生一次IO,那么总共需要百万次的IO,显然成本非常非常高。

索引字段要尽量的小

索引的最左匹配特性

不同的存储引擎支持的索引类型也不一样

InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

3. 事务隔离级别

未提交读(Read Uncommitted): 允许脏读,即可以读到其他会话中未提交事务修改的数据

提交度 (Read Committed): 只能读取到已经提交的数据

可重复读(Read Repeated): 在同一个事务内的查询和事务开始时刻一致的,InnoDB默认

串行读(Serializable):每次读都需要获得表级共享锁,读写都会相互阻塞

事务级别越高,性能越差。Read Committed可以满足大多数的场景。

使用mysql往往会遇到数据读写的瓶颈,而HBase这种分布式的存储架构面对数据的增长不需要做任何更改,只需要增加存储空间,且不会对读写性能有任何影响

Redis

1. K-V缓存系统

2. 支持的数据类型

String

Hash

List

Set

SortedSet

3. 特点

原子性:redis所有单个命令都具有原子性(因为redis是单线程的)

过期机制

HBase

1. 列族式存储

2. Table = Rowkey + Family + Column + Timestamp + value

3. 数据存储模式: (Table, Rowkey, Family, Column, Timestamp) -> value

4. 默认一列数据可以保存三个版本

5. 行式索引维护大量的索引,存储成本比较高,不能做到线性扩展,但是随机读效率高,对事务处理得比较好。列式存储根据同一列数据相似性的原理,利于对数据进行压缩,存储成本就会降低。列数据分开存储可以实现并行查询。千万级别的可以选择行式存储

Kafka

消息系统:

点对点消息系统 : 一个消息只能被一个消费者消费

发布订阅消息系统 : 一个topic下有多个queue, 每个queue是点对点的方式,queue之间是发布订阅方式。发布到topic的消息会被所有订阅者消费。

kafka是一个分布式的发布订阅消息系统,能够支撑海量数据的消息传递。kafka将消息持久化到磁盘中,并对消息创建了备份,保证了数据的安全。

特点: 可靠性,可扩展性,高性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值