MySql数据库
ns_salulu
这个作者很懒,什么都没留下…
展开
-
MySql数据库16-提升-高可用-主从复制
一 原理slave会从master读取binlog来进行数据同步。1.步骤master将数据更新日志记录到二进制日志(binary log)中,这些记录过程叫做二进制日志时间,binary log events;slave将master的binary og events拷贝到自己的中继日志(relay log)中。slave还原中继日志中的事件,将数据更新应用到自己的数据库中(该过程是串行化的)。2.原则每个slaver只有一个master每个slaver只能有一个唯一的服务器IDm原创 2020-07-15 16:59:26 · 107 阅读 · 0 评论 -
MySql数据库15-提升-性能优化5-分析SQL执行带来的开销(show profiles)
一 概述show profile是mysql提供的用来分析当前会话中sql语句执行的资源消耗情况的工具。例如磁盘I/O,上下文切换,CPU,Memory等资源的使用情况。默认处于关闭状态,并保存最近15次的运行结果。二 使用show profiles1.查看是否支持并开启该功能查看mysql> show variables like '%profiling%';+------------------------+-------+| Variable_name |原创 2020-07-15 15:26:32 · 263 阅读 · 3 评论 -
MySql数据库14-提升-性能优化4-慢查询分析
一 概述mysql的慢查询日志,它用来记录mysql中响应时间超过预知的语句,具体指运行时间超过long_query_time的sql,会被记录到慢查询日志中。long_query_time默认值为10,单位为秒。默认情况下,mysql是没有开启慢查询日志的,需要手动来设置这个参数。一般只会在需要调优的时候开启,因为开启慢查询日志会对性能有一点点的影响。二 查看和开启慢查询日志1. 查看是否开启查看当前的慢查询日志是否启用mysql> show variables like '%l原创 2020-07-15 13:51:31 · 141 阅读 · 0 评论 -
MySql数据库13-提升-性能优化3-多表查询与排序优化
一、IN和EXISTS1.介绍in:查询相当于多个or条件的叠加;in查询的子条件返回结果必须只有一个字段。exists:子句当能返回结果集则为true,不能返回结果集则为false;exists查询的子条件返回结果无限制。2.数据准备继续使用上一篇中的consumer_info表。然后再新建一个user_details_info表。create table user_details_info( id int auto_increment, sex varchar(8) null, a原创 2020-07-14 13:19:30 · 603 阅读 · 1 评论 -
MySql数据库12-提升-性能优化2-索引优化
一、创建测试数据mysql版本5.7.30创建表结构create table consumer_info( id int auto_increment primary key, user_name varchar(32) null, age int null, account_name varchar(32) null, email varchar(64) null,原创 2020-07-14 10:34:54 · 117 阅读 · 0 评论 -
MySql数据库11-提升-性能优化1-使用EXPLAIN分析执行过程
介绍触发器是与表相关的数据库对象,在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,当前触发器仅支持行即触发,不支持语句级触发。触发器类型NEW和OLD的使用INSERT触发器NEW表示将要或者已经新增的数据UPDATE触发器OLD表示修改之前的数据,NEW表示将要或者已经修改后的数据D原创 2020-07-14 10:16:39 · 165 阅读 · 0 评论 -
MySql数据库10-提升-性能优化0-索引
索引是什么?索引是一种数据结构,一种可以提高数据库检索目标数据性能的数据结构。数据库还维护着满足特定查找算法的数据结构,实现了高级查找算法。一般来说索引本身也很大,基本上都是以索引文件的形式存储在磁盘上的,唯一索引默认是使用B+树索引。索引的优缺点优点:提高数据的检索效率,降低数据的IO成本,通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。缺点:索引也是一张表,它记录了主键和索引字段,并指向实体表的记录,索引也是要占用磁盘空间的,索引虽然提高了查询速度,但是他会降低更新表数据的速原创 2020-07-13 18:12:48 · 110 阅读 · 0 评论 -
MySql数据库9-提升-触发器
介绍触发器是与表相关的数据库对象,在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,当前触发器仅支持行即触发,不支持语句级触发。触发器类型NEW和OLD的使用INSERT触发器NEW表示将要或者已经新增的数据UPDATE触发器OLD表示修改之前的数据,NEW表示将要或者已经修改后的数据D原创 2020-07-13 17:47:53 · 125 阅读 · 1 评论 -
MySql数据库8-提升-存储过程和函数4-流程控制
一 分支结构程序从多条逻辑分支中选中一个分支去执行1 if函数语法:IF(表达式1,表达式2,表达式2)如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值2 case结构2.1 语法1类似于java中的switch语句,一般用于等值判断语法:CASE 变量|表达式|字段WHEN 要判断的值1 THEN 返回值1[或语句1;]WHEN 要判断的值2 THEN 返回值2[或语句2;]....ELSE 返回值nEND[CASE]2.2 语法2类似于java中的原创 2020-07-13 17:47:26 · 103 阅读 · 0 评论 -
MySql数据库7-提升-存储过程和函数3-函数
函数介绍函数和存储过程差不多,都可以提高代码的重用性,简化操作。它们之间的区别:存储过程:可以有任意个返回值,适合做批量的插入和更新。函数:有且仅有1个返回值,适合数据处理,并返回处理结果。函数语法创建语法:CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体 [return 值;]END函数一般都会有return语句,但如果没有也可以函数体中如果只有一句代码则可以省略begin end使用delimiter设置结束标记调用语法原创 2020-07-13 17:47:05 · 77 阅读 · 0 评论 -
MySql数据库6-提升-存储过程和函数2-存储过程
一 介绍存储过程是什么:一组预先编译好的SQL语句的集合。有什么用:提高代码的重用性;简化操作。减少编译次数并且减少数据库和应用服务之间的连接次数,提高效率。二 语法创建:CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组SQL语句)END如果存储过程体只有一行,则BEGIN END可以省略;存储过程体中的每条sql语句的结尾必须加分号;存储过程的结尾可以使用DELIMITER重新设置;DELIMITER 结束标记参数列表格式:参数模原创 2020-07-13 16:27:09 · 101 阅读 · 0 评论 -
MySql数据库5-提升-存储过程和函数1-变量
1 系统变量说明:变量由系统提供,属于服务器层面使用的语法。系统变量分为全局变量和会话变量如果是全局变量需要加global,如果是会话级别的变量则加session。默认是session,所有可以不写。global|session:表示global或session。查看所有的系统变量:show global|session variables;查看满足条件的部分系统变量:show global|session variables like '%char%';查看指定的某个系原创 2020-07-13 16:26:24 · 75 阅读 · 0 评论 -
MySql数据库4-基础-视图的使用
MySql数据库4-基础-视图的使用一、概述二、操作视图1,准备数据2,视图的创建3,视图的使用4,视图的修改5,视图的删除6,视图信息的查看三、操作视图数据1,修改视图数据2,无法修改的视图四、表与视图的对比视图的好处一、概述视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。并且在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。二、操作视图1,准备数据创建一个学生表数据如下:创建一个教师表数据如下:原创 2020-07-13 16:15:56 · 152 阅读 · 0 评论 -
MySql数据库3-基础-事务(使用和原理介绍)
一、概述原创 2020-07-13 15:11:02 · 127 阅读 · 0 评论 -
MySql数据库2-基础-约束管理(配置字段约束、自增长列)
目录一、查看表的信息1,查看表结构(约束)2,查看表的索引二、约束1,创建表时设置约束1.1 创建表时添加列级约束1.2 创建表时添加表级约束2,修改约束2.1 添加约束2.2 删除约束3,自增长(标识列)3.1,创建表时设置:3.2,修改表时设置:3.3,查看和修改自增长的配置3.4 字增长列的特点4,主键约束和唯一约束的区别基于mysql5.7.30 docker版本一、查看表的信息1,查看表结构(约束)语法:desc 表名原创 2020-07-13 14:39:20 · 156 阅读 · 0 评论 -
MySql数据库1-基础-数据库管理(用户、用户权限、schemas库操作)
基于mysql5.7.30 docker版本一,启动mysql镜像1,使用mysql:5.7.30镜像启动一个容器docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=我的密码 -d mysql:5.7.30把容器的3306端口映射到宿主机的3306端口上给root用户设置一个密码此时就可以使用远程工具使用root用户连接该数据库了,当然也可以进入容器使用mysql客户端使用命令行模式来操作数据库。2,修改容器的原创 2020-07-13 14:16:02 · 734 阅读 · 0 评论