Mysql自序整理集
1、事务
mysql事务是用于处理操作量大、复杂性高的数据
1. 事务特性
原子性:保证每个事务所有操作要么全部完成或全部不完成,不可能停滞在中间环节;如事务在执行过程中出现错误,则会回滚到事务开始之前状态。
一致性:事务开始结束后保证数据库的完整性没有被破坏,数据都是按照数据库要求的规范写入。
隔离性:数据库允许多个事务同时对数据进行读写改操作,隔离性则可以防止多个事务由于交叉执行时导致数据不一致;事务中隔离分为4个级别。【出现:√ 不会出现:×】
|
脏读
|
不可重复读 | 幻读 | |
| 读未提交 |
️
|
️ | ️ |
| 读已提交 | ️ | ️ | ️ |
| 可重复读 | ️ | ️ | ️ |
| 串行化 | ️ | ️ | ️ |
持久性:事务提交后对数据库中的修改则是永久性的。
2. 事务并发时出现的问题
脏读:一个事务在处理过程中读取了另一个未提交的事务数据,当未提交的数据提交后,最终导致数据不一致。
不可重复读:一个事务在多次进行查询返回数据时,另一个事务将数据修改后提交,导致前事务数据产生不同的结果。
幻读:A事务将数据修改完毕时,同一时间B事务新增一条数据,A事务提交后查询发现还有一条数据没有进行修改,好似产生幻觉一样则为幻读。
3、索引
索引能加快数据库的查询速度并高效获取指定的数据。
- 优势
- 提高数据检索效率,降低数据库IO成本
- 通过索引列可以对数据进行排序,降低CPU消耗
- 劣势
- 占据磁盘空间
- 降低更新表的效率
- 优势
1. 索引使用
代码如下
创建索引
普通索引:
create index 索引名称 on 表名(列名)
其他索引(举例唯一索引unique):
公式:
create unique index 索引名称 on 表名(列名)
实例:
create table Demo(id int,
name varchar(20),
sex int,
unique index Demo_id(id ASC));
删除索引
删除:
公式:
drop index 索引名 on 表名;
实例:
drop index Dmoe_id on Demo;
2. 索引类型
- 主键索引:对主键进行索引,主键不允许空值。
- 普通索引:默认类型,无限制,允许定义索引时有重复值和空值。
- 唯一索引:专注于对唯一类型数据进行索引,允许空值。
- 全文索引:用于数值比较、范围过滤、关键字匹配的范围性快速查询。
- 联合索引:多列值组成索引,用于多列组合查询。
4、SQL语法&关键字
SQL是一种结构化查询语言,用于对数据进行插入、查询、更新、删除操作来管理数据库系统。
- insert into:数据插入操作,语法为insert into 表名(列1,列2)value(值1,值2),插入时列名和值需要一一对应。
- select from:数据查询操作,语法为select * from 表名;*则代表全部列名,可通过输入列名来查询特定数据。
- update set:更新操作,语法为update 表名 set 条件A where 条件B,条件A为修改条件,条件B为修改操作。
- delete from:删除操作,语法为delect from 表名 where 条件A,条件A为删除条件。
- where:用于sql中条件判断、条件过滤等操作。
- having:类似于where,一般使用于group by之后,与where区别在于where过滤行,having过滤组。
- like:用于模糊查询,主要只针对于“字符型”字段,常用"_"和"%"这两种通配符,前者充当占位符,后者代表匹配任意字符。
- order by:用于数据排序,常用ASC升序排列和DESC降序排列。
- group by:用于对字段进行分组。
- not:用于判断表达式真假,类似于java语言中boolean。
- and:用于在where子句后面将多个条件结合起来。
- between:用于取两个值之间的数据范围。
- lnner join:内连接,多表连接时只会显示满足条件的数据结果。
- left join:左连接,多表连接时只会以左表为基准显示左表全部数据,右表只会显示对应数据,若无对应数据显示null。
- right join:右连接,与左连接相反;多表连接时只会以右表为基准显示左表全部数据,左表只会显示对应数据,若无对应数据显示null。
- in:用于嵌套语句查询,常用语子查询中。
5、数据库设计
1. 数据库三大范式
- 每个字段具有原子性不可再分。
- 建立在第一范式的基础上,确保数据库表列中只保存一种数据,不可以把多种数据保存在一个数据库表列中。
- 建立在地二范式的基础上,数据不能存在传递关系,数据库中每个字段和主键都是直接关系。
2. 数据库规范设计
- 系统需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运维
Mysql自序整理集的更多相关文章
- MySql常用命令集
MySql 常用命令集 Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...
- PHP调用mysql函数整理
mysql函数整理 名称:mysql_connect() 用途:打开非持久的 MySQL 连接.如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE. 语法:mysql_connect( ...
- Mysql 高可用集群PXC
PXC是percona公司的percona xtraDB cluster,简称PXC.它是基于Galera协议的高可用集群方案.可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可 ...
- 最全mysql笔记整理
mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...
- Mysql 常用命令集
1.mysqlbinlog工具使用方法如下: 先使用 show binary logs 查看 在使用导出命令 mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xx ...
- MySQL企业常用集群图解
mysql集群架构图片 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般就是上图的架构.WEB节点读取数据库的时候读取dbproxy服务器.dbproxy服务器通过对S ...
- corosync+pacemaker and drbd实现mysql高可用集群
DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的 ...
- 【MySQL】容器集群支持数据库实践
京东容器数据库系统,管理1800台物理计算节点,生产1W+ 多MySQL Docker容器实例.架构简单可靠,Docker容器计算平台与MySQL集群管理平台解耦处理.为描述方便,京东容器化数据库系统 ...
- MySQL表空间集
--MySQL表空间集 ----------------------2014-09-20 1. 收缩ibdata的方法,目前MySQL依然没有提供收缩ibdata的方法,只能重构,下面是5.7的步骤. ...
随机推荐
- POJ 1986:Distance Queries
Distance Queries Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 18139 Accepted: 6248 ...
- Generative Adversarial Nets (GAN)
目录 目标 框架 理论 数值实验 代码 Generative Adversarial Nets 这篇文章,引领了对抗学习的思想,更加可贵的是其中的理论证明,证明很少却直击要害. 目标 GAN,译名生成 ...
- CS5268替代AG9321MCQ 替代AG9321方案 TYPEC转HDMI多功能拓展坞
台湾安格AG9321MCQ是一款TYPEC拓展坞产品方案,他集中了TYPEC 转HDMI VGA PD3.0快充 QC3.0数据传输 I2S接口的音频DAC输出以及可以各种读卡器功能. Caps ...
- 编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
返回本章节 返回作业目录 需求说明: 以继承和多态思想模拟饲养员喂养不同动物的不同行为 动物园有饲养员和动物,其中动物有老虎.马.猴子.羊.狼等. 饲养员对不同的动物有不同的喂养行为. 实现思路: 以 ...
- SpringCloud集成Security安全(Config配置中心)
1.说明 为了保护配置中心的敏感数据, 需要对Config Server进行安全保护, 本文基于Spring Security方案, 为Config Server增加最简单的Basic安全认证. 2. ...
- PostgresSQL客户端pgAdmin4使用
1.说明 pgAdmin 4是一款为PostgreSQL设计的可靠和全面的数据库设计和管理软件, 它允许您连接到特定的数据库,创建表和运行各种从简单到复杂的SQL语句. 它支持的操作系统包括Linux ...
- java运算符2
续: 位运算符(<<,>>,>>>) 1.<<: 3<<2,二进制左移2位,右边用0补齐 3的二进制:00000000 0 ...
- python 使用exec执行定义好的方法,提示“name 'XXX' is not defined”
文件A中的exec(),调到了文件B中的方法,提示name is not defined exec()调用时,提示方法没有定义 试过了的方法: 1.百度上说是局部变量或者是全局变量之间的文件,然后在e ...
- unittest+ddt_实现数据驱动测试(7)
我们设计测试用例时,会出现测试步骤一样,只是其中的测试数据有变化的情况,比如测试登录时的账号密码.这个时候,如果我们依然使用一条case一个方法的话,会出现大量的代码冗余,而且效率也会大大降低.此时, ...
- [ Flask ] myblog_flask问题集(RESTfull风格)
VUE问题 前端VUE怎么捕获所有404NOT FOUND的路由呢? [ 解决方案 ] vue-router路由守卫,参考文档:动态路由匹配 对于路由.../edit/<id>,自己能编辑 ...