Mysql
数据库
安澜仙王
希望生活会越来越好
展开
-
主从复制
文章知识来源:https://github.com/RingoTangs/LearningNote/blob/master/MySQL/MySQL.md文章目录复制基本原理复制基本原则一主一从配置复制基本原理MySQL复制过程分为三步:Master将改变记录到二进制日志(Binary Log)。这些记录过程叫做二进制日志事件,Binary Log Events;Slave将Master的Binary Log Events拷贝到它的中继日志(Replay Log);Slave重做中继日志中.转载 2020-11-20 14:01:03 · 120 阅读 · 0 评论 -
Mysql锁机制
文章目录定义锁的分类从对数据操作的类型(读\写)分从对数据操作的粒度分表锁(偏读)特点案例分析加读锁加写锁结论行锁(偏写)特点案例分析行锁的基本演示无索引行锁升级为表锁间隙锁的危害说明危害案例演示案例结论行锁分析查询正在被锁阻塞的sql语句优化建议页锁定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并原创 2020-11-20 13:51:29 · 90 阅读 · 0 评论 -
Show Profile
文章目录介绍分析步骤1、是否支持,看看当前的MySQL版本是否支持。2、开启Show Profile功能,默认是关闭的,使用前需要开启。3、运行SQL4、查看结果,执行SHOW PROFILES;5、诊断SQL:SHOW PROFILE cpu,block io FOR QUERY Query_ID;Show Profile查询参数备注6、Show Profile查询列表,日常开发需要注意的结论:介绍MySQL提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量默认情况下,参原创 2020-11-19 14:03:50 · 242 阅读 · 0 评论 -
日志分析工具mysqldumpslow
介绍在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow# 1、mysqldumpslow --help 来查看mysqldumpslow的帮助信息root@1dcb5644392c:/usr/bin# mysqldumpslow --helpUsage: mysqldumpslow [ OPTS... ] [ LOGS... ]Parse and summarize the MySQL slow query log. Opt原创 2020-11-19 11:32:57 · 213 阅读 · 0 评论 -
慢查询日志
介绍MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。由慢查询日志来查看哪些SQL超出了我们的最大忍耐时间值,比如一条SQL执行超过5秒钟,我们就算慢SQL,希望能收集超过5秒钟的SQL,结合之前explain进行全面分析。说明默认情况下,MySQL数据库没有开启慢查询日志,需要我们原创 2020-11-19 11:01:09 · 208 阅读 · 0 评论 -
查询优化的案例
单表查询优化建表CREATE TABLE IF NOT EXISTS `article` (`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`author_id` INT(10) UNSIGNED NOT NULL,`category_id` INT(10) UNSIGNED NOT NULL,`views` INT(10) UNSIGNED NOT NULL,`comments` INT(10) UNSIGNED NOT N原创 2020-11-17 17:29:00 · 733 阅读 · 0 评论 -
索引的使用
使用索引建表sql CREATE TABLE staffs ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR (24) NULL DEFAULT '' COMMENT '姓名', age INT NOT NULL DEFAULT 0 COMMENT '年龄', pos VARCHAR (20) NOT NULL DEFAULT '' COMMENT '职位', add_time TIMESTAMP NOT NULL DEFAU原创 2020-11-11 09:57:47 · 601 阅读 · 0 评论 -
性能分析-EXPLAIN
覆盖索引的概念来源:https://www.cnblogs.com/happyflyingpig/p/7662881.html解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫 做覆盖索引。解释三:是非聚集组合索引的一种形式,它包括在查询里的Select原创 2020-11-04 17:33:26 · 1170 阅读 · 0 评论 -
前缀索引
原文链接:https://blog.csdn.net/ma2595162349/article/details/79449493当索引是很长的字符序列时,这个索引将会很占内存,而且会很慢,这时候就会用到前缀索引了。所谓的前缀索引就是去索引的前面几个字母作为索引,但是要降低索引的重复率,索引我们还必须要判断前缀索引的重复率。先看这样一张表:mysql> select * from test;+----------+-------+| name | score |+---------.转载 2020-11-02 15:47:01 · 1176 阅读 · 0 评论 -
Mysql索引
Mysql索引SQL性能下降的原因查询语句写的差。索引失效:索引建了,但是没有用上。关联 查询太多join(设计缺陷或者不得已的需求)。服务器调优以及各个参数的设置(缓冲、线程数等)。SQL执行顺序select # 5 ... from # 1 ... where # 2 .... group by # 3 ... having # 4 ..原创 2020-11-02 13:49:16 · 527 阅读 · 0 评论 -
mysql 存储引擎
查看命令看你的mysql现在已提供什么存储引擎show engines;说明engine:引擎名称。suppot:是否支持。comment:说明。transactions:是够支持事务。xa:是否支持XA事务。savepoints:是否支持保存savepoints之间的内容。看你的mysql当前默认的存储引擎show variables like '%storage_engine%';各个引擎简介1、InnoDB存储引擎InnoDB是MySQL的默认事务型原创 2020-10-30 17:09:07 · 204 阅读 · 0 评论 -
Mysql的用户与权限管理
mysql的用户管理创建用户create user zhang3 identified by '123123';表示创建名称为zhang3的用户,密码设为123123;了解user表查看用户 select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;host:表示连接类型% 表示所有远程通过 TCP方式的连接IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定ip地原创 2020-10-30 16:12:12 · 264 阅读 · 0 评论 -
Mysql的配置文件
配置文件解析https://www.cnblogs.com/shiji888/p/10950361.htmlhttps://www.cnblogs.com/wyy123/p/6092976.htmlhttps://www.cnblogs.com/lyjing/p/8109529.htmlhttps://www.cnblogs.com/gaoyuechen/p/10273102.html1,二进制日志log-bin主从复制log-bin 中存放了所有的操作记录(写?),可以用于恢复。相当于原创 2020-10-30 15:21:36 · 222 阅读 · 0 评论 -
从mysql数据库中查询最新的一条数据的方法
文章来源:https://blog.csdn.net/qq_42952331/article/details/85888824SELECT * from a where id = (SELECT max(id) FROM a);select * FROM 表名 ORDER BY id DESC LIMIT 0,1 ;转载 2020-11-20 17:38:24 · 3039 阅读 · 0 评论 -
连接数据库
服务器数据库的正确连接方法,适合阿里云安全组没有开启端口的情况1,首先填写常规部分2,填写ssh部分原创 2020-11-20 17:34:24 · 89 阅读 · 0 评论 -
解决mySQL占用内存超大问题
资料来源:https://developer.aliyun.com/ask/54463?spm=a2c6h.13159736https://www.cnblogs.com/yum777/p/6554901.html方法1:个人稍微解决了一下,上面忘了说,我的mysql版本是:64位的5.7.9,应该是当前最新版本。从网上找了一下资料,反正就是从配置文件上下手,我本机上安装的是windows版的64位5.6.25,占用内存就非常小,我对照着他的配置文件修改了一下5.7.9的配置文件。[mysql.原创 2020-11-20 14:56:30 · 9343 阅读 · 0 评论 -
MySQL8 修改用户登录密码
文章来源:https://blog.csdn.net/weixin_41463971/article/details/88010770示例:修改mysql数据库中的user表中的test用户的登录密码。MySQL版本号:8.0.15步骤:登录mysqlmysql -u root -p输入登录密码使用mysql数据库USE mysql修改密码ALTER USER 'test'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSW.转载 2020-11-20 14:35:18 · 490 阅读 · 0 评论 -
模拟新增mysql百万级表数据的方法记录
该文章知识来源:https://blog.csdn.net/qq_35429398/article/details/107208286建表CREATE TABLE `goods_info` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `goods_name` varchar(255) DEFAULT NULL, `goods_number` int(11) DEFAULT NULL, `goods_price` double(10.转载 2020-11-17 11:32:55 · 160 阅读 · 0 评论 -
Mysql修改字符集
插入中文数据变成问号,一般都是因为字符集没有设置成utf8的原因1,查看字符集show variables like ‘character%’;show variables like ‘%char%’;mysql> show variables like 'character%';+--------------------------+----------------------------+| Variable_name | Value原创 2020-10-30 14:15:14 · 273 阅读 · 0 评论 -
concat,concat_ws以及group_concat的用法
文章来源:https://blog.csdn.net/Mary19920410/article/details/76545053#comments_13675606说明:本文中使用的例子均在下面的数据库表tt2下执行:一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1, str2,…)返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。3、举例:例1:select concat (id, name, score.转载 2020-11-20 14:10:52 · 423 阅读 · 0 评论 -
Mysql的流程控制结构
流程控制结构顺序、分支、循环分支结构if函数语法:if(条件,值1,值2)功能:实现双分支应用在begin end中或外面case结构语法:情况1:类似于switchcase 变量或表达式when 值1 then 语句1;when 值2 then 语句2;...else 语句n;end 情况2:case when 条件1 then 语句1;when 条件2 then 语句2;...else 语句n;end 应用在begin end 中或外面i原创 2020-10-12 16:21:48 · 180 阅读 · 0 评论 -
Mysql变量的定义和使用
变量系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量系统变量说明:变量由系统定义,不是用户定义,属于服务器层面注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别使用步骤:1、查看所有系统变量show global|【session】variables;2、查看满足条件的部分系统变量show global|【session】 variables like '%char%';3、查看指定的系统变量原创 2020-10-12 14:35:46 · 958 阅读 · 0 评论 -
Mysql函数的定义和调用
定义含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率与存储过程的区别存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新函数:有且仅有1 个返回,适合做处理数据后返回一个结果创建语法CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体END参数列表 包含两部分:参数名 参数类型函数体:肯定会有ret原创 2020-10-12 11:56:32 · 1494 阅读 · 0 评论 -
Mysql的存储过程的使用方法
定义一组预先编译好的SQL语句的集合,理解成批处理语句,类似于java中的方法1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END参数列表包含三部分参数模式 参数名 参数类型举例:in stuname varchar(20)参数模式:in:该参数可以作为输入,也就是该参数需要调用方传入值out:该参数原创 2020-10-12 11:34:48 · 574 阅读 · 0 评论 -
Mysql视图的使用
文章来源:https://www.cnblogs.com/geaozhang/p/6792369.html定义虚拟表,和普通表一样使用是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。基表:用来创建视图的表叫做基表base table视图的好处简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。安全:和表实现了分离,提高了安全性数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源.原创 2020-10-12 10:43:15 · 296 阅读 · 0 评论 -
Mysql的事务使用
定义一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。事务的特性ACID原子性:一个事务不可再分割,要么都执行要么都不执行一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态隔离性:一个事务的执行不受其他事务的干扰持久性:一个事务一旦提交,则会永久的改变数据库的数据.事务的创建隐式事务事务没有明显的开启和结束的标记比如insert、update、delete语句delete from 表 where id =1;显式事务事原创 2020-10-11 16:28:34 · 116 阅读 · 0 评论 -
MySql六大约束和标识列
六大约束1.NOT NULL :非空,用于保证该字段的值不能为空。例如学生表的学生姓名及学号等等。2.DEFAULT:默认值,用于保证该字段有默认值。例如学生表的学生性别3.PRIMARY KEY:主键,用于保证该字段的值具有唯一性并且非空。例如学生表的学生学号等。4.UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。例如注册用户的手机号,身份证号等。5.CHECK:检查约束(MySql不支持),检查字段的值是否为指定的值。6.FOREIGN KEY:外键,用于限制两个表的关原创 2020-10-11 14:57:18 · 163 阅读 · 0 评论 -
mysql的数据类型分析和使用
文章来源:https://blog.csdn.net/weixin_42047611/article/details/81449663https://www.cnblogs.com/-xlp/p/8617760.htmlhttps://blog.csdn.net/puqutogether/article/details/45648879https://blog.csdn.net/qq_34530405/article/details/81738907https://blog.csdn.net/wo.原创 2020-10-11 11:18:36 · 301 阅读 · 0 评论 -
数据定义语言DDL 库和表的管理
数据定义语言DDL库和表的管理创建: create修改: alter删除: drop一、库的管理创建、修改、删除1、库的创建语法:create database [if not exists]库名;CREATE DATABASE IF NOT EXISTS books2、库的修改RENAME DATABASE books TO 新库名;更改库的字符集ALTER DATABASE books CHARACTER SET gbk3、库的删除DROP DAT原创 2020-10-08 10:56:06 · 112 阅读 · 0 评论 -
Mysql的DML语言增删改
DML语言数据操作语言:插入:insert修改:update删除:delete插入方法1语法:insert into 表名(列名,...) values(值1,...);INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);INSERT INTO beauty(id,NAME,sex,phone)V原创 2020-10-07 18:39:02 · 94 阅读 · 0 评论 -
Mysql的联合查询union
文章来源:https://www.cnblogs.com/alex0702/p/10767005.html语法:select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】.....select 字段|常量|表达式|函数 【from 表】 【whe.原创 2020-10-07 15:59:33 · 489 阅读 · 0 评论 -
子查询的IN,Any和All用法
含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询in的用法--查询出不与每个部门中最低工资相同的全部雇员信息SELECT *FROM emp eWHERE e.sal NOT IN( SELECT MIN(sal) FROM emp GROUP BY deptno);ANY在使用中有如下三种使用形式:=ANY:表示与子查询中的每个元素进行比较,功能与IN类似(然而<>ANY不等价于NOT IN)原创 2020-09-30 17:57:55 · 3941 阅读 · 0 评论 -
Mysql的分页查询
特点limit语句放在查询语句的最后语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段】 limit 【offset,】size; offset要显示条目的起始索引(起始索引从0开始) size 要显示的条目个数案例1:查询前五条员工信息SELECT * FROM employees LIMIT 0,原创 2020-09-29 11:41:32 · 100 阅读 · 0 评论 -
Mysql的连接查询
说明语法: select 查询列表 from 表1 别名 【连接类型】 join 表2 别名 on 连接条件 【where 筛选条件】 【group by 分组】 【having 筛选条件】 【order by 排序列表】 分类:内连接(★):inner外连接 左外(★):left 【outer】 右外(★):right 【outer】 全外:full【outer】交叉连接:cross 内连接可省略innerSELECT COUNT(*) 个数,depart原创 2020-09-28 17:37:13 · 83 阅读 · 0 评论 -
Mysql的分组函数
功能用作统计使用,又称为聚合函数或统计函数或组函数分类sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数特点1、sum、avg一般用于处理数值型,max、min、count可以处理任何类型2、以上分组函数都忽略null值3、可以和distinct搭配实现去重的运算4、count函数的单独介绍,一般使用count(*)用作统计行数5、和分组函数一同查询的字段要求是group by后的字段一般来讲,能用分组前筛选的,尽量使用分组前筛选,提高效率(原创 2020-09-27 10:52:04 · 524 阅读 · 0 评论 -
Mysql的单行函数
其他函数SELECT VERSION();SELECT DATABASE();SELECT USER();IFNULL 用法SELECT *,salary*12*(1+IFNULL(commission_pct,0))FROM employeesORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;流程控制函数ifcase1.if函数: if else 的效果SELECT IF(10<5,'大','小');SELEC原创 2020-09-19 09:39:33 · 167 阅读 · 0 评论 -
mysql的排序查询以及例子
说明order by子句可以支持 单个字段、别名、表达式、函数、多个字段order by子句在查询语句的最后面,除了limit子句升序 ASC 可以省略案例1.查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪FROM employeesORDER BY 年薪 DESC,last_name ASC;降序 DESC案例2.选原创 2020-09-17 17:15:50 · 282 阅读 · 0 评论 -
mysql的条件查询以及例子
一、按条件表达式筛选条件运算符:> < >= <= = != <>案例1:查询工资>12000的员工信息SELECT *FROM employeesWHERE salary>12000;案例2:查询部门编号不等于90号的员工名和部门编号SELECT last_name, department_idFROM employeesWHERE department_id<>90;二、按逻辑表达式筛选案例1原创 2020-09-17 17:14:48 · 198 阅读 · 0 评论 -
mysql的基础查询以及例子
基础查询查看当前所有的数据库show databases;打开指定的库use 库名查看当前库的所有表show tables;查看其它库的所有表show tables from 库名;查看表结构desc 表名;创建表 create table 表名( 列名 列类型, 列名 列类型, 。。。 );起别名方式一:使用asSELECT 100%98 AS 结果;SELECT last_name AS 姓,first_name AS 名 FROM emp原创 2020-09-15 15:42:38 · 104 阅读 · 0 评论