分类: MySQL

20 篇文章

MySQL进阶3——MySQL SQL优化
插入数据 insert 优化 采用批量插入:尽量避免少量多次插入,每次插入都需要与数据库建立连接,消耗数据库网络资源。也要避免一次插入太多数据,建议一次插入最多不超过1000条,如果需要插入上万条记录,可以将其分割为多条insert语句。 insert into tb_test values(1,)(2,),(3,),...; 手动事务提交 MyS…
MySQL进阶2——MySQL索引
前言 索引是整个进阶篇中最为核心也最为重要的一个部分,后面的SQL优化很大程度上也是围绕着索引展开。 索引概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 在没有…
MySQL进阶1——MySQL存储引擎
MySQL体系结构 连接层:最上层是一些客户端连接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户验证它所具有的操作权限; 服务层:第二层架构主要完成大多数的核心服务功能,如SQL接口、并完成缓存的查询、SQL的分析和优化、部分内置函数的执行。所有的跨存储引擎功能也在这一层实现, 如过程、函数等; 引擎层…
MySQL基础9——MySQL事务
事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 例如常见的银行转账:转账要么成功,要么失败,不管成功还是失败,转账前后银行里的总账不会改变。 默认MySQL的事务是自动提交的,当执行一条DML语句时,MySQL会立即隐式提交事务。如果需要…
MySQL基础8——MySQL多表查询
多表关系 在进行数据库表结构的设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在多种联系,基本上分为三种情况。 一对多(多对一) 多对多 一对一 一对多 部门与员工的关系就是典型的一对多关系,一个部门对应了多个员工,一个员工对应一个部门,在这种情况下,可以在多的一方建立外键,指向一的一方的主…
MySQL基础7——MySQL约束
概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据; 目的:保证数据库中数据的准确性、有效性和完整性; 分类: 非空约束:必须有值 唯一约束:用于必须唯一的字段,比如身份证号,用户手机号,用户名等; 主键约束:设计一张表必须有主键; 默认约束:例如如果不指定值,默认是1,这种情境下就可以使用默认约束; 检查约束:MySQL 8.0.…
MySQL基础6——MySQL函数
定义 函数是指一段可以直接被另一段程序调用的程序或代码。MySQL中的函数常用的有字符串函数、数值函数、日期函数、流程函数等,下面将逐一进行讲解。 字符串函数 MySQL中内置了很多字符串函数,以下是常用的几个字符串函数。 使用方法 concat mysql> select concat('Hello' , ' …
MySQL基础5——SQL语言
SQL通用语法 SQL语句可以单行或者多行书写,以分号结尾; SQL语句可以使用空格/缩进来增强语句的可读性(如果SQL语句比较长的情况下,空格/缩进个数没有限制); MySQL数据库的SQL语句不区分大小写,为了保证规范,关键字还是建议使用大写。 注释 单行注释:-- 注释内容或者#注释内容(MySQL特有); 多行注释:/* 注释内容 */ S…
MySQL基础4——MySQL密码复杂度与密码过期策略
前言 在对MySQL数据库管理的过程当中,我们会期望把数据库的密码复杂度设置得高一些,尤其是针对管理员用户root,针对数据库用户的安全而言,一般会关心密码复杂度设置,是否定期修改密码,本篇将对这两项进行展开。 密码复杂度策略 validate_passwd是MySQL自带的用于验证密码强度的插件,在MySQL的管理中,我们应该启用该插件进行密码安…
MySQL基础3——二进制部署MySQL
MySQL的安装方式 MySQL有很多安装方式,在不使用Docker的条件下,这里主要讲解YUM安装方式和二进制安装方式,其中的二进制部署方式也是最常用的部署方式。本章介绍MySQL的二进制部署方案。 yum安装 优点:这种方法操作非常简单,但需要服务器可以联网且yum源可用(国内可以选择163/阿里源)。 编译安装 优点:可以定制自己想要的功能特…