
【数据库-MySQL】
文章平均质量分 92
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS,关系数据库管理系统) 应用软件之一。
一棵树~
just do it
展开
-
MySQL七种日志总结
mysql日志原创 2022-07-15 17:19:37 · 4565 阅读 · 0 评论 -
SQL优化小技巧
在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。...原创 2022-07-15 16:50:38 · 454 阅读 · 0 评论 -
@Transactional失效场景介绍
第一种Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用。例如以下代码。定义一个错误的@Transactional标注实现,修饰一个默认访问符的方法@Componentpublic class TestServiceImpl { @Resource TestMapper testMapper; @Transactional void insertTestWrongModifier() {原创 2021-07-22 17:22:01 · 275 阅读 · 0 评论 -
实际开发MySQL常用优化
目录1、大批量插入数据优化2、INSERT的优化3、GROUP BY的优化4、ORDER BY 的优化 5、OR的优化6、优化嵌套查询7、使用SQL提示总结1、大批量插入数据优化(1)对于MyISAM存储引擎的表,可以使用:DISABLE KEYS 和 ENABLE KEYS 用来打开或者关闭 MyISAM 表非唯一索引的更新。ALTERTABLEtbl_nameDISABLEKEYS;loadingthedataALTERTABLEtbl...原创 2021-01-11 09:07:15 · 168 阅读 · 0 评论 -
MySQL系列复习(15)视图
环境:mysql5.7.30,cmd命令中进行演示。1、需求分析公司领导说:给我统计一下:当月订单总金额、订单量、男女订单占比等信息,我们啪啦啪啦写了一堆很复杂的sql,然后发给领导。这样一大片sql,发给领导,你们觉得好么?如果领导只想看其中某个数据,还需要修改你发来的sql,领导日后想新增其他的统计指标,你又会发送一大坨sql给领导,对于领导来说这个sql看起来很复杂,难以维护。实际上领导并不关心你是怎么实现的,他关心的只是这些指标,并且方便查看、查询,而你却把复杂的实现都发给了领导原创 2020-11-24 20:47:13 · 526 阅读 · 0 评论 -
MySQL系列复习(14)事务
环境:mysql5.7.30,cmd命令中进行演示。1、什么是事务?数据库中的事务是指数据库执行一批操作,这些操作要么全部执行成功,要么全部执行失败,不会存在部分失败的情况。举个例子比如A用户给B用户转账100操作,过程如下:1.从A账户扣1002.给B账户加100如果在事务的支持下,上面最终只有2种结果:操作成功:A账户减少100;B账户增加100 操作失败:A、B两个账户都没有发生变化如果没有事务的支持,可能出现错:A账户减少了100,此时系统挂了,导致B账户没有加上1原创 2020-11-24 19:12:30 · 251 阅读 · 0 评论 -
MySQL系列复习(13)NULL常见问题总结
目录1、比较运算符中使用NULL2、准备数据3、IN、NOT IN和NULL比较4、NOT IN 和NULL比较5、EXISTS、NOT EXISTS和NULL比较6、判断NULL只能用IS NULL、IS NOT NULL7、聚合函数中NULL的坑8、NULL不能作为主键的值9、总结环境:mysql5.7.30,cmd命令中进行演示。当数据的值为NULL的时候,可能出现各种意想不到的效果,如何避免?1、比较运算符中使用NULLmysql>sel.原创 2020-11-23 19:59:56 · 402 阅读 · 0 评论 -
MySQL系列复习(12)子查询【重点】
目录1、子查询概念2、子查询分类2.1、按结果集的行列数不同分为4种2.2、按子查询出现在主查询中的不同位置分3、准备数据4、select后面的子查询4.1、示例14.2、示例25、from后面的子查询5.1、示例16、where和having后面的子查询6.1、特点6.2、mysql中的in、any、some、all6.3、标量子查询6.3.1、一般标量子查询6.3.2、多个标量子查询6.3.3、子查询+分组函数6.3.4、错误的标量原创 2020-11-23 19:34:26 · 636 阅读 · 0 评论 -
MySQL系列复习(11)深入了解连接查询及原理
环境:mysql5.7.30,cmd命令中进行演示。当我们查询的数据来源于多张表的时候,我们需要用到连接查询,连接查询使用率非常高。准备数据:2张表:t_team:组表。t_employee:员工表,内部有个team_id引用组表的id。drop table if exists t_team;create table t_team(id int not null AUTO_INCREMENT PRIMARY KEY comment '组id',team_name varchar..原创 2020-11-19 00:11:02 · 225 阅读 · 1 评论 -
MySQL系列复习(10)MySQL 常用函数汇总
环境:mysql5.7.30,cmd命令中进行演示。1、MySQL数值型函数 函数名称 作用 abs 求绝对值 sqrt 求二次方根 mod 求余数 ceil 和ceiling两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 floor 向下取整,返回值转原创 2020-11-18 23:02:24 · 433 阅读 · 2 评论 -
MySQL系列复习(9)分组查询(group by、having)
环境:mysql5.7.30,cmd命令中进⾏演⽰。目录1、分组查询语法2、聚合函数3、准备数据4、单字段分组5、多字段分组6、分组前筛选数据7、分组后筛选数据8、 where和having的区别9、分组后排序10、where & group by & having & order by & limit 一起协作11、mysql分组中的坑12、总结1、分组查询语法语法:SELECT column,group_fu原创 2020-11-17 19:46:45 · 374 阅读 · 1 评论 -
MySQL系列复习(8)排序和分页(order by、limit)
环境:mysql5.7.30,cmd命令中进⾏演⽰。代码中被[]包含的表⽰可选,|符号分开的表⽰可选其⼀。1、排序查询(order by)电商中:我们想查看今天所有成交的订单,按照交易额从⾼到低排序,此时我们可以使⽤数据库中的排序功能来完成。排序语法:select 字段名 from 表名 order by 字段1 [asc|desc],字段2 [asc|desc];需要排序的字段跟在 order by 之后;asc|desc表⽰排序的规则,asc:升序,desc:降序,默认为asc;⽀持多原创 2020-10-19 15:24:43 · 266 阅读 · 0 评论 -
MySQL系列复习(7)select条件查询
环境:mysql5.7.25,cmd命令中进⾏演⽰。电商中:我们想查看某个⽤户所有的订单,或者想查看某个⽤户在某个时间段内所有的订单,此时我们需要对订单表数据进⾏筛选,按照⽤户、时间进⾏过滤,得到我们期望的结果。此时我们需要使⽤条件查询来对指定表进⾏操作,我们需要了解sql中的条件查询常见的玩法。1、条件查询语法语法:select 列名 from 表名 where 列 运算符 值说明:注意关键字where,where后⾯跟上⼀个或者多个条件,条件是对前⾯数据的过滤,只有满⾜where后⾯条件的原创 2020-10-16 16:51:59 · 972 阅读 · 0 评论 -
MySQL系列复习(6)select查询基础篇
环境:mysql5.7.30,cmd命令中进⾏演⽰。DQL(Data QueryLanguage):数据查询语⾔,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送⼀条指令,数据库将按需求返回数据。1、基本语法select 查询的列 from 表名;注意:select语句中不区分⼤⼩写,SELECT和select、FROM和from效果⼀样。查询的结果放在⼀个表格中,表格的第1⾏称为列头,第2⾏开始是数据,类属于⼀个⼆维数组。2、查询常量select 常量值1,常量值2,常量原创 2020-10-16 15:14:35 · 460 阅读 · 0 评论 -
MySQL系列复习(5)DML常⻅操作
目录1、插入操作1.1、插入单行2种方式1.1.1、方式1:insert into 表名[(字段,字段)] values (值,值);1.1.2、方式2:insert into 表名 set 字段 = 值,字段 = 值;1.2、批量插⼊2种⽅式1.2.1、方式1:insert into 表名 [(字段,字段)] values (值,值),(值,值),(值,值);1.2.2、方式2:insert into 表 [(字段,字段)]2、数据更新2.1、单表更新2.1.1、语原创 2020-10-12 16:18:00 · 367 阅读 · 0 评论 -
MySQL系列复习(4)DDL常见操作
环境:mysql5.7.30,cmd命令中进⾏演⽰。DDL:Data Define Language数据定义语⾔,主要⽤来对数据库、表进⾏⼀些管理操作。如:建库、删库、建表、修改表、删除表、对列的增删改等等。⽂中涉及到的语法⽤[]包含的内容属于可选项,下⾯做详细说明。1、库的管理1.1、创建库1.2、删除库2、表管理3、表中列的管理...原创 2020-10-10 18:42:37 · 411 阅读 · 0 评论 -
MySQL系列复习(3)MySQL管理员常⽤的⼀些命令
环境:mysql5.7.30,cmd命令中进⾏演⽰。1、MySQL权限⼯作原理1.1、MySQL是如何来识别⼀个用户的呢?MySQL为了安全性考虑,采⽤ 【主机名+⽤户名】来判断⼀个⽤户的⾝份,因为在互联⽹中很难通过⽤户名来判断⼀个⽤户的⾝份,但是我们可以通过ip或者主机名判断⼀台机器,某个⽤户通过这个机器过来的,我们可以识别为⼀个⽤户,所以MySQL中采⽤⽤【户名+主机名】来识别⽤户的⾝份。当⼀个⽤户对MySQL发送指令的时候,mysql就是通过⽤户名和来源(主机)来断定⽤户的权限。1.2原创 2020-10-10 17:37:44 · 352 阅读 · 0 评论 -
MySQL系列复习(2)MySQL数据类型介绍
1、前提介绍环境:mysql5.7.30,cmd命令中进⾏演⽰。主要内容:1. 介绍mysql中常⽤的数据类型 2. mysql类型和java类型对应关系 3. 数据类型选择的⼀些建议2、MySQL的数据类型主要包括以下五⼤类整数类型: bit 、 bool 、 tinyint 、 smallint 、 mediumint 、 int 、 bigint 浮点数类型: float 、 double 、 decimal 字符串类型: char 、 varchar 、 tinyblo原创 2020-10-10 14:44:47 · 213 阅读 · 0 评论 -
MySQL系列复习(1)MySQL简介,安装,基础使用,数据库规范
1、简介1.1、概述MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql是开源的,所以你不需要支付额外的费用。 Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 MySQL使用标准的SQL数据语言形式。Mysql可以原创 2020-10-10 11:41:14 · 802 阅读 · 0 评论 -
MySQL5.7创建数据库与添加用户、删除用户及授权、保证数据库账号安全
MySQL安装启动成功后,首先我们需要创建数据库,然后创建一个用户去操作这个数据库。1、创建数据库// 登录MySQL客户端:mysql -h [ip] -u[username] -p[password]C:\Users\Administrator>mysql -h 127.0.0.1 -uroot -p"root"// 创建数据库,指定字符集mysql> CREATE DATABASE `apollodb` DEFAULT CHARACTER SET utf8 COLLATE原创 2020-09-23 11:31:10 · 3992 阅读 · 0 评论 -
MySQL 百万级数据量分页查询如何优化?
1.直接使用数据库提供的SQL语句语句样式: MySQL中,可用如下方法:SELECT*FROM表名称LIMITM,N适应场景: 适用于数据量较少的情况(元组百/千级)原因/缺点: 全表扫描,速度会很慢 且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃.2.建立主键或唯一索...原创 2019-12-03 09:54:56 · 373 阅读 · 0 评论 -
MySQL百万级数据优化
首先,数据量大的时候,应尽量避免全表扫描,应考虑在 where 及 order by 涉及的列上建立索引,建索引可以大大加快数据的检索速度。但是,有些情况索引是不会起效的:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫...原创 2018-09-06 09:49:04 · 323 阅读 · 0 评论 -
MySQL存储引擎
一、 MySQL存储引擎MyISAM与InnoDB如何选择MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是两个。...原创 2018-09-07 10:26:17 · 174 阅读 · 0 评论 -
MySQL添加索引
-- 1.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ; -- 2.添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`); -- 3.添加INDEX(普通索引) ALTER ...原创 2018-09-18 11:03:30 · 762 阅读 · 0 评论 -
MySQL索引的设计和使用
1、索引的概述所有 MySQL 列类型都可以被索引,对相关列使用索引是提高 SELECT 操作性能的最佳途径。根据存储引擎可以定义每个表的最大索引数和最大索引长度,每种存储引擎(如 MyISAM、InnoDB、BDB、MEMORY 等)对每个表至少支持 16 个索引,总索引长度至少为 256 字节。大多数存储引擎有更高的限制。MyISAM 和 InnoDB 存储引擎的表默认创建的都是 BT...原创 2018-09-14 11:35:46 · 242 阅读 · 0 评论 -
MySQL性能优化
1、优化简介优化MySQL数据库是数据库管理员和数据库开发人员的必备技能。MySQL优化,一方面是找出系统的瓶颈,提高MySQL数据库整体的技能;另一方面,需要合理的结构设计和参数调整,以提高用户操作的响应速度。同时还要尽可能的节省系统资源,以便系统可以提高更大负荷服务。MySQL数据库优化是多方面的,原则上减少系统瓶颈,减少资源的占用,增加系统的反映速度。例如,通过优化文件系统,提高磁盘...原创 2018-09-25 12:53:05 · 296 阅读 · 0 评论 -
解决linux mysql命令 bash: mysql: command not found 的方法
linux上安装mysql登录报错:有以下几种错误原因:1、如果你是使用的 rpm 的安装方式安装的,那么可能的情况就是你没有安装 client 包。2、如果你已经安装了还是报这个错的话,那么你可以再重装一遍。(本人将client包重新安装后登录成功)3、系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin...原创 2018-09-29 09:51:42 · 49028 阅读 · 1 评论 -
SpringBoot更新数据到MySQL乱码问题
所谓的乱码是编码不统一,改下字符编码就可以了。要保证以下几个地方统一:1、建数据库时的字符编码2、建表时的字符编码3、连接数据库的URL字符编码4、程序的字符编码.如果现在数据库的编码是UTF-8的话,那么在MySQL的连接字符串中加入下面的内容.jdbc:mysql://127.0.0.1:3306/databasename?useUnicode=true&char...原创 2018-11-06 18:17:39 · 311 阅读 · 0 评论 -
MySQL应用分析
MySQL系统复习教程:1、数据库介绍(MySQL安装 体系结构、基本管理)2、MySQL用户管理及SQL语句详解3、MySQL-Select语句高级应用4、MySQL 索引管理与执行计划5、MySQL的存储引擎与日志说明6、Mysql 备份恢复与xtrabackup备份7、MySQL Replication 主从复制全方位解决方案8、MHA高可用架构与Atlas读...转载 2019-01-27 14:36:45 · 268 阅读 · 0 评论 -
MySQL优化原理
目录一、MySQL逻辑架构二、MySQL查询过程1、客户端/服务端通信协议2、查询缓存3、语法解析和预处理4、查询优化6、查询执行引擎7、返回结果给客户端三、性能优化建议1、Scheme设计与数据类型优化2、创建高性能索引3、索引相关的数据结构和算法4、高性能策略4.1、MySQL不会使用索引的情况:非独立的列4.2、前缀索引4.3、...转载 2019-04-11 23:17:17 · 441 阅读 · 0 评论