随笔分类 - 数据库 / 关系型
摘要:起步 定义 索引(Index)是帮助MySQL高效获取数据的数据结构 本质 索引是数据结构。可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。 这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现 高级查找算法 优点 (1)类似大学图书馆建书目索引,提高数据检索的效率,
阅读全文
摘要:InnoDB表的优势 InnoDB存储引擎在实际应用中拥有诸多优势,比如操作便利、提高了数据库的性能、维护成本低等。 如果由于硬件或软件的原因导致服务器崩溃,那么在重启服务器之后不需要进行额外的操作。 InnoDB崩溃恢复功能自动将之前提交的内容定型,然后撤销没有提交的进程,重启之后继续从崩溃点开始
阅读全文
摘要:MyISAM 引擎 主要的非事务处理存储引擎 1、MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务、行级锁、外键, 有一个毫无疑问的缺陷就是 崩溃后无法安全恢复 。 2、mysql5.5之前默认的存储引擎 3、优势是访问的速度快,对事务完整性没有要求
阅读全文
摘要:查看所有存储引擎 show engines; # 方式2 MariaDB [(none)]> show engines \G; *************************** 1. row *************************** Engine: MRG_MyISAM Supp
阅读全文
摘要:在 InnoDB 存储引擎中有一部分数据会放到内存中,缓冲池则占了这部分内存的大部分,它用来存储各种数据的缓存 从缓冲池中读取数据 缓冲池管理器会尽量将经常使用的数据保存起来,在数据库进行页面读操作的时候,首先会判断该页面是否在缓冲池中, 如果存在就直接读取,如果不存在,就会通过内存或磁盘将页面存放
阅读全文
摘要:mysql8中测试 查看profiling 是否开启 select @@profiling; show variables like 'profiling'; profiling=0 代表关闭,我们需要把 profiling 打开,即设置为 1: set profiling=1; 任意执行1条查询语
阅读全文
摘要:执行流程 查询流程 1、查询缓存:Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端;如果没有, 就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在 MySQL8.0 之后就抛弃了这个功能 2、解析器:在解析器中对 SQL 语句进行语法分析、语义分析
阅读全文
摘要:服务器处理客户端请求 连接层 1、系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接。 2、经过三次握手建立连接成功后, MySQL 服务器对 TCP 传输过来的账号密码做身份认证、权限获取。 用户名或密码不对,会收到一个Access denied for user错误,客
阅读全文
摘要:创建角色 CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]... # 如果 host_name省略,默认为% , role_name不可省略 ,不可为空 代码案例 CREATE ROLE 'manager'@'loc
阅读全文
摘要:连接核实阶段 当用户试图连接MySQL服务器时,服务器基于用户的身份以及用户是否能提供正确的密码验证身份来确定接受或者拒绝连接。 即客户端用户会在连接请求中提供用户名、主机地址、用户密码,MySQL服务器接收到用户请求后,会使用user表中 的host、user和authentication_str
阅读全文
摘要:查看表 MariaDB [(none)]> show databases; # 查看所有数据库 + + | Database | + + | information_schema | | jdbc | | mysql | | performance_schema | + + 4 rows in se
阅读全文
摘要:查看权限类型 show privileges; (1) CREATE和DROP权限 ,可以创建新的数据库和表,或删除(移掉)已有的数据库和表。如果将 MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库。 (2)SELECT、INSERT、UPDATE和DELET
阅读全文
摘要:登录mysql服务 mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句" -h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP -P参数 后面接MySQL服务的端口,通过该参数连接
阅读全文
摘要:起步 Linux安装MySQL后查看目录结构 find / -name mysql MySQL数据库文件的存放路径:/var/lib/mysql/ 相关命令目录:/usr/bin(mysqladmin、mysqlbinlog、mysqldump等命令)和/usr/sbin 配置文件目录:/usr/s
阅读全文
摘要:宽松模式 如果设置的是宽松模式,那么我们在插入数据的时候,即便是给了一个错误的数据,也可能会被接受,并且不报错 严格模式 出现上面宽松模式的错误,应该报错才对,所以MySQL5.7版本就将sql_mode默认值改为了严格模式 设置宽松模式 set sql_mode = ONLY_FULL_GROUP
阅读全文
摘要:查看大小是否敏感 SHOW VARIABLES LIKE '%lower_case_table_names%' lower_case_table_names参数值的设置: 默认为0,大小写敏感 设置1,大小写不敏感。创建的表,数据库都是以小写形式存放在磁盘上,对于sql语句都是转换为小写对表和数据库
阅读全文
摘要:简介 在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改为 utf8mb4 ,从而避免上述乱码的
阅读全文
摘要:修改密码 # 在myslq5.7中修改密码 alter user 'root' identified by 'abcd1234'; # 使用同样的方式在mysql8.0中修改密码则会报错 错误原因 在MySQL 8.0之前,MySQL使用的是validate_password插件检测、验证账号密码强
阅读全文
摘要:起步 简介 公用表表达式(或通用表表达式)简称为CTE(Common Table Expressions)。CTE是一个命名的临时结果集,作用范围是当前语句。 CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其他子查询。所以,可以考虑代替子
阅读全文
摘要:起步 分类 顺序结构 :程序从上往下依次执行 分支结构 :程序按条件进行选择执行,从两条或多条路径中选择一条执行 循环结构 :程序满足一定条件下,重复执行一组语句 针对于MySQL 的流程控制语句主要有 3 类。注意:只能用于存储程序 条件判断语句 :IF 语句和 CASE 语句 循环语句 :LOO
阅读全文