欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL基础

程序员文章站 2022-05-10 23:32:49
...

开辟新系列,数据库的复习之录。这并不是新的学习,而是一个复习记录。

1. 认识数据库

数据库,即就是数据的管理仓库
在知道数据库之前,我们知道存储的数据信息都是用文件,如doc、xls等,但是文件保存数据会有如下的缺陷:

  1. 数据的安全性
  2. 数据的查询问题
  3. 大量数据的管理问题

上述的问题可以交给数据库了,数据库就像是一个数据的仓库,并带有管理的功能。

2. 数据库的分类

SQL server:微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。
上述的数据库都是学习过的,从操作语句上来说没有太多区别。后面以MySQL为线索进行叙述。

3. mariaDB

MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。
后面使用的也是这个数据库。
这个数据库的历史请参见MariaDB的历史
这个数据库的安装请参见MariaDB的安装

4. 常用存储引擎

存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
查看引擎

show engines;

MySQL基础从上图可知,MySQL存储引擎主要有:Memory、Mrg_Myisam、CSV、Blackhole、MyIsam、 InnoDB、Archive、Federated、Performance_Schema等。

但是最常用的是InnoDB和Mylsam。

4.1 InnoDB存储引擎

InnoDB是事务型数据库的首选引擎,通过上图也看到了,InnoDB是目前MYSQL的默认事务型引擎,是目前最重要、使用最广泛的存储引擎。支持事务安全表(ACID),支持行锁定和外键。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。

4.2 MyISAM存储引擎

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT或UPDATE数据时即写操作需要锁定整个表,效率便会低一些。

上述引擎都是采用B+Treee索引结构。

相关标签: MariaDB