一、关系型数据库
mysql,pgsql,oracle ,sqlserver 支持连表关联查询(会有一些特定的语法特特性)
二、非关系型数据库
redis,mongodb,memcache (key-value)
三、关系型数据库与非关系型数据库的区别:
1)关系型数据库:表和表之间有关联关系,支持连表查询,关联查询,数据存储在次哦按
2)非关系型数据库不支持,只是键值对存储方式,数据存储在内存,读写快
区别:sql与nosql,内存数据库与非内存数据库
四、Redis内存数据库
redis ,memcache
Redis:qps大概都为10W条/s
1个redis服务只能占用一核cpu(为单线程)
性能方面:磁盘io瓶颈,内存越大,性能越高,CPU
sas ssd pcie卡ssd
五、如何选择数据库配置
30万磁盘iops,ssd 3-5万 ,磁盘吞吐 400MB/S
压测指标;更多的是参考意义(指标都是各公司对外公布的数据,特定条件或者资源下才可达到)
sysbench:磁盘io,内存,数据库等等压测
内存数据库;redis,顾名思义就是数据放在内存的,
1G redis QPS 理论10万+ 10Gredis 还是10万+,cpu性能,
一个redis 只能占用一核cpu
六、redis数据都在内存,重启会不会丢?
1、Redis带有两种数据持久化方式
1)一种是全备,定期命令:bgsave——>rdb(磁盘物理备份)
重启后,能到对应的节点,重新加载rdb文件
2)一种aof日志(拓展文件)
重启aof日志文件,重新加载
2、架构层面:
1)主从:主挂了,从库会往上推,推到主库(架构层面能保证服务的可用性)
2)集群
mysql redis 微博:
redis 只做缓存,需要做持久化的,一般是落在mysql层
redis一般也用来做mysql上层缓存层
游戏行业redis数据裸盘,最终——mysql
七、mysql 两大特大型
1、OLTP实时性(连接数处理)——交易完成(事务处理)
2、OLAP数据量分析:计算分析结果(事务分析)
3、mysql更擅长oltp,数据量不大时也可olap,Oracle更擅长olap
八、存储引擎的变化
5.1以前默认的myisam引擎,5.5以后默认的innodb
myisam 非事务引擎,表锁
innodb 事务引擎,行锁
是否支持事务
事务会有完整性(譬如:物流没完整送货,需要退货,一直到第一步骤)