目录
数据库概念
根据百科知道数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合
在我们使用电脑的过程中,我们存放一些文档都会使用word文档,也可以存放文件,但是普通的文件存放一些无关紧要的文件是无所谓的,但是存在以下缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据 库的水平是衡量一个程序员水平的重要指标。
我们在文章中介绍数据库使用的是MySQL数据库服务,并且需要我们知道的是我们所使用的MySQL数据库其实只是一个应用程序。
也就是说,MySQL服务器本质上是一个网络服务器,我们使用myslq命令连接MySQL时,本质上时打开一个mysql客户端
MySQL架构
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体 系结构的一致性。
- Connectors:表示的是不同语言和SQL的交互
- Management Serveices & Utilities:表示的是管理和控制工具
- Connection Pool:表示的是管理缓冲用户连接,线程处理等需要缓存的需求
- SQL Interfacd:SQL结构,接收用户的SQL命令,并返回对应的结果
- Parser:解释器,我们所输入的命令都会被其验证和解析,解析器是由Lex和YACC实现的
- Optimizer:查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端请求的 query(sql语句) ,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果
- Cache和Buffer:缓冲区,Cache:主要功能是将客户端提交 给MySQL 的 Select 类 query 请求的返回结果集 cache 到内存中,与该query的一个hash值做一个对应,buffer是写缓存,cahce是读缓存
- Pluggable Storage Engines:存储引擎接口
SQL分类
- DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构。比如create语句、drop语句、alter语句等。
- DML(Data Manipulation Language)数据操作语言,用来对数据进行操作。比如insert语句、delete语句、update语句等。
- DCL(Data Control Language)数据控制语言,主要负责权限管理和事务。比如grant语句、revoke语句、commit语句。
存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
我们可以通过show engines;来查看存储引擎,常见的是InnoDB和MyLSam
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
在后序我会介绍MySQL的基本操作 。