数据库【第一部分~介绍】

一.MySql介绍

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立。

1.1数据库简介

数据库是指长期在计算机内,有组织,可共享的,大量数据的集合。数据是按照特定的数据模型来组织,存储在数据库中。

1.1.1好处

  • 可以将数据持久性的存储进本地,需要用到的时候又用相应的操作把数据拿出来,不需要重新创建数据,省去了很多时间和空间
  • 由于是有组织的,按照一定数据模型来进行存储,方便管理数据,也实现简单的结构化的查询

1.1.2相关概念

  • DB(database):数据库,保存一组有组织的数据的容器。
  • DBMS(Database Management System)**:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据。
  • 常见DBMS有:MySQL、Oracle、DB2、SqlServer等。
  • SQL**:结构化查询语言,用于和数据库通信的语言。
    对应的关系:DBMS——>SQL——>DB

2.1SQL语言分类

DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录(数据)。
DML(Data Manipulate Language):数据操纵语言,用于添加,修改,删除,修改数据库记录,并检查数据完整性。
DDL(Data Define Language):数据定义语言,用于库和表的创建,修改,删除。
TCL(Data Control Language):数据事务语言。

二.MySql安装以及相关事项

2.1安装

  1. 打开MySQL下载地址:
    https://dev.mysql.com/downloads/windows/installer/5.7.html
    在这里插入图片描述

点击Download,弹出页面,选择No thanks,开始下载
在这里插入图片描述

  1. 下载完成后,双击mysql-installer-community-5.7.24.0.msi文件进行安装,如有如下提示
    在这里插入图片描述

说明.NET4.5.2未安装 需要安装此插件 点击报错窗口网址 直接安装即可
在这里插入图片描述

安装完毕,重新点击MySQL安装程序
3. 勾选I accept 然后 Next
在这里插入图片描述

  1. 选择Custom表示自定义安装,然后Next
    在这里插入图片描述

  2. 根据电脑系统位数,点击中间的箭头
    在这里插入图片描述

选择安装路径,尽量不要安装到C盘,然后Next
在这里插入图片描述

  1. 点击Excute,然后Next
    在这里插入图片描述

默认选择Standalone MySQL Server,点击Next

在这里插入图片描述
选择Server Computer,默认端口号为3306,点击Next
在这里插入图片描述

  1. 设置MySQL密码,建议root,点击Next

在这里插入图片描述
服务器名称无需更改,点击Next

在这里插入图片描述
点击Excute,完成安装

在这里插入图片描述

2.2相关事项

2.2.1 MySQL服务的启动和停止

​ 方式一:计算机——右击管理——服务——MySQL ​
方式二:通过管理员身份运行cmd命令提示行 ​ net start
mysql(启动服务) ​ net stop mysql(停止服务)

2.2.2 MySQL服务的登录和退出

方式一:通过MySQL自带的客户端,只限于root用户
​方式二:通过cmd命令提示行关闭,未配置MySQL环境变量,需在MySQL安装的bin下启动cmd ​
登录:mysql 【-h主机名 -P端口号 】-u用户名 -p密码
退出:exit或ctrl+C

2.2.3 MySQL的语法规范

不区分大小写
使用" ; "结尾
各个子句一般分行写
关键字不能缩进也不能分行
合理使用缩进
注释
单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字 */

三.数据库引擎

3.1什么是数据库引擎?

它是数据库底层的软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是插件式存储引擎。

3.2 分类以及说明

常用的存储引擎

InnoDB

InnoDB在MySQL 5.5后成为默认索引
支持事务处理
支持外键
支持崩溃修复能力和并发控制(MVCC),但不支持全文索引。
mvcc全称multi version concurrent control(多版本并发控制),mysql把每个=操作都定义成一个事务,每开启一个事务,系统的事务版本号自动递增。每行记录都有两个隐藏列:创建版本号和删除版本号。

使用场景:如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM

MyISAM引擎是MySQL 5.1及之前版本的默认引擎
不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁
不支持事务
不支持外键
不支持崩溃后的安全恢复,在表有读取查询的同时,支持往表中插入新纪录
支持BLOB和TEXT的前500个字符索引
支持全文索引,支持延迟更新索引,极大提升写入性能,对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用
插入数据快,空间和内存使用比较低。

使用场景:如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

四.补充知识点(锁机制)

MySQL的InnoDB锁机制分为表级锁和行级锁

4.1行级锁

行级锁中有共享锁和排它锁。

4.1.1共享锁

共享锁又称为读锁,简称为S锁,它是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能改。

案例:select * from t_user where id =10 lock in share mode;

4.1.2排它锁

排它锁又称为写锁,简称为X锁,排它锁就是不能与其他锁并存。如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁。

案例:select * from t_user where id =10 for update;

MySQL InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型。

4.1.3 格式

共享锁:SELECT … LOCK IN SHARE MODE;
排他锁:SELECT … FOR UPDATE;

4.2表级锁

意向锁是 InnoDB 自动加的,不需要用户干预。
对于INSERT、UPDATE和DELETE,InnoDB 会自动给涉及的数据加排他锁;对于一般的SELECT语句,InnoDB 不会加任何锁,事务可以通过以下语句显式加共享锁或排他锁。

4.2.1意向共享锁

意向共享锁(IS):表示事务准备给数据行加入共享锁,也就是说一个数据行加共享锁前必须先取得该表的IS锁,表明在加锁之前,都需要取得意向共享锁。

4.2.2意向排他锁

意向排他锁(IX):类似上面,表示事务准备给数据行加入排他锁,说明事务在一个数据行加排他锁前必须先取得该表的IX锁。

4.3优劣

上述所述:
表明在加锁之前,都需要取得该种类的意向共享锁。

表锁的优势:开销小;加锁快;无死锁
表锁的劣势:锁粒度大,并发处理能力低

行锁的劣势:开销大;加锁慢;会出现死锁
行锁的优势:锁的粒度小,处理并发的能力强

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值