一,关系型数据库
**例如mariadb mysql oracle
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。
优点:
1.易于维护:都有使用表结构,格式一致;
2.使用方便:sql语言通用,可用于复杂查询;
3.复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1.读写性能比较差,尤其是海量数据的高效率读写;
2.固定的表结构,灵活度稍欠;
3.高并发写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈;
mariadb和mysql 的区别:
mariadb是centos7默认的数据库
mysql是centos6的数据库
二,非关系型数据库
redis mongodb
非关系型数据库严格上不是一种数据库,应该是一种数据库结构化存储方法的结合,可以是立档或者键值对等。
优点:
1,格式灵活:存储数据的格式可以是keg,value形式,文档形式,图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2.速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘
3.高扩展性;
4.成本低:nosql数据库部署简单,基本都是开源软件
缺点:
1.不提供sql支持,学习和使用成本较高。
2.无事务处理
3.数据结构相对复杂,复杂查询方面稍欠
MySQL存储引擎介绍
文件系统: 操作系统组织和存取数据的一种机制。文件系统是一种软件。
类型:ext2 3 4 ,xfs
不管使用什么文件系统,数据内容不会变化 不同的是,存储空间、大小、速度。
MySQL引擎: 可以理解为,MySQL的“文件系统”,只不过功能更加强大。
MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能。
请说说你所知道的MySQL的存储引擎和默认的存储引擎分别都有和都是什么?
1.InnoDB 存储引擎(默认)
2.MyISAM 存储引擎
3.MEMORY 内存引擎
查看引擎:
mysql> show engines; (查看本机的所有的引擎)
修改存储引擎:
ALTER TABLE 表名 ENGINE=引擎;
如何查看Mysql服务器上的版本
mysql> select version();
1.什么是外键:
外键的主要作用是保持数据的一致性、完整性。
2.什么是索引:
索引相当于书中的目录,可以提高数据检索的效率,降低数据库的IO。
MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的
3.什么是行锁定与锁表:
可以将一张表锁定和可以单独锁一行的记录。为了防止你在操作的同时也有别人在操作。
(锁表主要是为了备份 防止备份的时候有新的数据再进来)
4.什么是事务:
事务是由一步或几步数据库的操作。这系列操作要么全部执行,要么全部放弃执行。
事务控制语言(TCL)
事务控制语言 (Transation Control Language) 有时可能需要使用 DML 进行批量数据的删除,修改,增加。
比如,在一个员工系统中,想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。
那么从开始执行到结束,就会构成一个事务。对于事务,要保证事务的完整性。要么成功,要么撤回。
事务要符合四个条件(ACID):
事务具有四个特性:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持续性(Durability)
这四个特性也简称ACID性。