首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL的体系结构

在使用淘宝网进行购物过程中,当我们查询商品时,实际上是查询淘宝网数据库中的商品;当我们购买某一件商品时,我们是在向淘宝网的数据库的订单中,填写了一条购买信息;当我们去银行办理相关业务,查询账户余额时,是查询银行数据库中我们的个人账户信息;当我们取款时,我们是在修改银行数据库中账户信息的数据。所以,其实我们一直都在使用数据库,通过网络和设备,在与数据库进行交互。一方面数据库可以给应用提供插入、删除、修改、查询数据的功能,另一方面,数据库也能保证数据库再关机之后,数据不丢失,也就是数据的持久化。那么,数据库具体是如何实现的呢?

03

第二章《数据库的基本操作》

一、mysql默认安装的4个库: 1.information_schema:保存关于mysql服务器所维护的所有的其他数据库的信息,例如:数据库名、数据库中的表名; 2.mysql:记录数据库用户,权限,关键字等。mysql自己需要使用的控制和管理信息; 3.performance_schema:5.5版本新增一个库,用于手机服务器性能参数,且该库中所有的表的存储引擎均为performance_schema; 4.test:测试库,所有用户再test库里都有root权限(一般不会存储有用的信息再test库里) 二.1.创建数据库:create database databasename; databasename是指数据库名称 2.移动到指定的数据库里:use databasename; 3.删除数据库:drop database databasename; 其它用法 1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3、选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4、查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5、创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6、显示表的结构: mysql> DESCRIBE MYTABLE; 7、往表中加入记录 mysql> insert into MYTABLE values (”hyq”,”M”); 8、用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9、导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 三,数据库的存储引擎: 1.什么是存储引擎:数据库的存储引擎是数据库的底层软件组件,数据库管理系统(Dbms)就是依赖存储引擎来对数据表进行创建,查询,更新和删除操作的。不同的存储引擎提供了不同的存储机制,索引技巧和锁定水平等功能。还可以获得某些特定的功能。现在不同的数据库的管理系统都支持多种不同的存储引擎。mysql的核心就是存储引擎。 2.MySQL的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中不需要所有的表都使用同一种引擎,针对具体的需求每一张表都可以选择不同的存储引擎。 MySQL5.5支持的存储引擎有:InnoDB,MyiSAM,Memory,CVS等。 查看mysql中所有的存储引擎的命令:show engines\G Engine: PERFORMANCE_SCHEMA #引擎名称 Support: YES #mysql是否支持这种引擎 Comment: Performance Schema #mysql对它的评价 Transactions: NO #是否支持事务 XA: NO #是否支持事务的分布式 Savepoints: NO #事务的保存点 1.myisam存储引擎的特点: (1)myisam引擎读取速度快,占用资源少,不支持事务,不支持外键约束,但支持全文索引 (2)读写相互阻塞,也就是说读数据的时候就不能写数据,写数据的时候就不能读数据; (3)myisam引擎只能缓存索引,而不能缓存数据; (4)mysql5.5之前的默认引擎。 使用场景: (1)不需要事务支持的业务,例如银行转账就不适合用myisam引擎; (2)适用于读数据比较多的业务,不适用于读写频繁的业务; (3)并发相对较低的业务(纯读或者纯写的高并发也可以),数据修改相对较少的业务; (4)硬件资源比较差的机器可以考虑多使用myisam引擎。 2.InnoDB存储引擎的特点: (1)事物类数据表的首选引擎,支持事物安全表,支持行级别锁定和外键,mysql5.5之后的默认引擎; (2)具有提交,回滚和崩溃恢复能力的事物安全存储引擎,能处理巨大的数据量,性能及效率高,完全支持外键完整约束条件; (3)具有非常高的效的缓存特性,能缓存索引也能缓存数据,对硬件要求高, (4)使用InnoDB时,将在mysql数据目录创建一个名为ibdata的10M带大小的自动扩展文件,以及两个名为ib_logfile0和ib_logfile1的5M带大小的日志文件。 使用场景:

01

第二章《数据库的基本操作》

一、mysql默认安装的4个库: 1.information_schema:保存关于mysql服务器所维护的所有的其他数据库的信息,例如:数据库名、数据库中的表名; 2.mysql:记录数据库用户,权限,关键字等。mysql自己需要使用的控制和管理信息; 3.performance_schema:5.5版本新增一个库,用于手机服务器性能参数,且该库中所有的表的存储引擎均为performance_schema; 4.test:测试库,所有用户再test库里都有root权限(一般不会存储有用的信息再test库里) 二.1.创建数据库:create database databasename; databasename是指数据库名称 2.移动到指定的数据库里:use databasename; 3.删除数据库:drop database databasename; 其它用法 1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3、选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4、查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5、创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6、显示表的结构: mysql> DESCRIBE MYTABLE; 7、往表中加入记录 mysql> insert into MYTABLE values (”hyq”,”M”); 8、用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9、导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 三,数据库的存储引擎: 1.什么是存储引擎:数据库的存储引擎是数据库的底层软件组件,数据库管理系统(Dbms)就是依赖存储引擎来对数据表进行创建,查询,更新和删除操作的。不同的存储引擎提供了不同的存储机制,索引技巧和锁定水平等功能。还可以获得某些特定的功能。现在不同的数据库的管理系统都支持多种不同的存储引擎。mysql的核心就是存储引擎。 2.MySQL的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中不需要所有的表都使用同一种引擎,针对具体的需求每一张表都可以选择不同的存储引擎。 MySQL5.5支持的存储引擎有:InnoDB,MyiSAM,Memory,CVS等。 查看mysql中所有的存储引擎的命令:show engines\G Engine: PERFORMANCE_SCHEMA #引擎名称 Support: YES #mysql是否支持这种引擎 Comment: Performance Schema #mysql对它的评价 Transactions: NO #是否支持事务 XA: NO #是否支持事务的分布式 Savepoints: NO #事务的保存点 1.myisam存储引擎的特点: (1)myisam引擎读取速度快,占用资源少,不支持事务,不支持外键约束,但支持全文索引 (2)读写相互阻塞,也就是说读数据的时候就不能写数据,写数据的时候就不能读数据; (3)myisam引擎只能缓存索引,而不能缓存数据; (4)mysql5.5之前的默认引擎。 使用场景: (1)不需要事务支持的业务,例如银行转账就不适合用myisam引擎; (2)适用于读数据比较多的业务,不适用于读写频繁的业务; (3)并发相对较低的业务(纯读或者纯写的高并发也可以),数据修改相对较少的业务; (4)硬件资源比较差的机器可以考虑多使用myisam引擎。 2.InnoDB存储引擎的特点: (1)事物类数据表的首选引擎,支持事物安全表,支持行级别锁定和外键,mysql5.5之后的默认引擎; (2)具有提交,回滚和崩溃恢复能力的事物安全存储引擎,能处理巨大的数据量,性能及效率高,完全支持外键完整约束条件; (3)具有非常高的效的缓存特性,能缓存索引也能缓存数据,对硬件要求高, (4)使用InnoDB时,将在mysql数据目录创建一个名为ibdata的10M带大小的自动扩展文件,以及两个名为ib_logfile0和ib_logfile1的5M带大小的日志文件。 使用场景:

03

java核心技术第一篇之数据库基础

04.常见的数据库管理系统 MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。 Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。 DB2:IBM公司的数据库产品,收费的。常应用在银行系统中. SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。 SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。 SQLite : 嵌入式的小型数据库,应用在手机端。 常用数据库:MYSQL,Oracle. 这里使用MySQL数据库。MySQL中可以有多个数据库,数据库是真正存储数据的地方。 05.MySQL的安装和客户端连接: 1.连接MySQL服务器端: 1).使用命令行:Mysql数据库root密码重置 1) 停止mysql服务器 运行输入services.msc 停止mysql服务 2) 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码 use mysql; update user set password=password(‘abc’) WHERE User=‘root’; 4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程 5) 在服务管理页面 重启mysql 服务 密码修改完成 mysql -uroot -p密码 (回车)

02

2. MySQL基础知识

MySQL是⼀个单进程多线程、⽀持多⽤户、基于客户机/服务器(Client/Server, C/S)的关系数据库管理系统。与其他数据库管理系统(DBMS)相⽐,MySQL具有体积⼩、易于安装、运⾏速度快、功能⻬全、成本低廉以及开源等特点。⽬前,MySQL已经得到了⼴泛的使⽤,并成为了很多企业⾸选的关系数据库管理系统。 MySQL拥有很多优势,其中包括以下⼏点。 1. 性能⾼效:MySQL被设计为⼀个单进程多线程架构的数据库管理 系统,保证了 MySQL使⽤较少的系统资源(例如CPU、内存),且能 为数据库⽤户提供⾼效 的服务。 2. 跨平台⽀持:MySQL可运⾏在当前⼏乎所有的操作系统上,例如Linux、 Unix、Windows以及Mac等操作系统。这意味着在某个操作系统上实现的 MySQL数据库可以轻松地部署到其他操作系统上。 3. 简单易⽤:MySQL的结构体系简单易⽤、易于部署,且易于定制,其独特的插 件式(pluggable)存储引擎结构为企业客户提供了⼴泛的灵活性,赋予了数据 库管理系统以卓越的紧致性和稳定性。 4. 开源:MySQL是世界上最受欢迎的开源数据库,源代码随时可访问,开发⼈员 可以根据⾃身需要量身定制MySQL。MySQL开源的特点吸引了很多⾼素质和有 经验的开发团队完善MySQL数据库管理系统。 5. ⽀持多⽤户:MySQL是⼀个⽀持多⽤户的数据库管理系统,确保多⽤户下数据 库资源的安全访问控制。MySQL的安全管理实现了合法账户可以访问合法的数 据库资源,并拒绝⾮法⽤户访问⾮法数据库资 源。

02

MySQL体系结构

连接者:不同语言的代码程序和mysql的交互(SQL交互) 1、连接池 管理、缓冲用户的连接,线程处理等需要缓存的需求 2、管理服务和工具组件 系统管理和控制工具,例如备份恢复、Mysql复制、集群等  3、sql接口 接受用户的SQL命令,并且返回用户需要查询的结果 4、查询解析器 SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构) 5、查询优化器 SQL语句在查询之前会使用查询优化器对查询进行优化 select id,name from user where age = 40;  a、这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行age过滤  b、这个select查询先根据id和name进行属性投影,而不是将属性全部取出以后再进行过滤  c、将这两个查询条件联接起来生成最终查询结果 6、缓存 如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据 7、插入式存储引擎 存储引擎说白了就是如何管理操作数据(存储数据、如何更新、查询数据等)的一种方法。因为在关系数据库 中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

01
领券