![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
jym12138
积极向上的小码农
展开
-
Mysql优化
查询优化尽量全值匹配如果是联合索引,尽量在联合索引中的字段都能用到。最佳左前缀法则(让索引不失效的一个法则)如果索引了过多列,要遵守最左前缀法则。指的是查询从索引的最左前列并且不跳过索引中的列。当把最左边的索引 code 去掉 就留name 后 索引失效不要在索引上做任何操作不在索引列上做任何操作(计算,函数,(自动 or 手动)类型转换),会导致索引失效而全表扫描。范围条件放最后存储引擎不能使用索引中范围条件右边的列。如果使用了范围查询,会导致范围查询以后的索引失效。覆盖索引要原创 2020-05-19 09:18:58 · 198 阅读 · 0 评论 -
Mysql 执行计划
当客户端发送给mysql 服务器一条查询语句后,经过sql的优化器,会产生一个执行计划。执行计划使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MYSQL 是如何处理你的 sql 语句的。分析你的查询语句或是表结构的性能瓶颈。语法: Explain + sql执行计划的作用表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查执行计划包含的信息id:获取 select 子句的操作表顺序,有几种情况原创 2020-05-19 09:03:37 · 7038 阅读 · 1 评论 -
Mysql 索引 简介
什么是索引?索引是帮助 Mysql 高效获取数据的数据结构索引的类型:哈希索引 :时间复杂度o1 哈希索引是无序的 不能用来排序和范围查询,并且不允许表里有太多重复值出现,避免哈希冲突。B+Tree:扫库,扫表能力更强,排序能力强,磁盘读写能力强,效率更加稳定。Innodb 只有主键是聚集索引(唯一索引),如果表里没有主键,会选择第一个没有null值唯一索引当作聚集索引,如果没有符合条件的,就会选择rowid。当使用辅助索引来查找数据的时候,会先从辅助索引中找到符合条件的数据的id,然后在从聚合原创 2020-05-19 08:29:16 · 156 阅读 · 0 评论 -
Mysql 慢查询
慢查询的定义及作用慢查询日志,就是查询慢的日志,是指mysql 记录所有执行超过 long_query_time 参数设定的时间阈值的sql 语句的日志,该日志能为 SQL 语句的优化带来很好的帮助。默认情况下是关闭的,要使用慢查询日志,首先需要开启日志功能。慢查询的配置常用配置:slow_query_log 启动停止慢查询日志set GLOBAL slow_query_log =1slow_query_log_file 指定慢查询日志的存储路径及文件(默认和数据文件放一起)lo原创 2020-05-15 11:34:56 · 253 阅读 · 0 评论 -
Mysql 业务(表)设计
Mysql 表的设计需要从两个方面进行:逻辑设计(范式设计,反范式设计)物理设计(命名规范,存储引擎选择,数据类型选择)重要性:如果表设计的不好,sql语句再怎么优化也没用,主要避免多表join,大数据量用join可能会急剧变慢,因为笛卡尔积的缘故逻辑设计:范式设计:数据库设计的第一大范式:数据表中的所有字段都只具有单一属性。单一属性的列是由基本数据类型所构成的。设计出来的表都是简单的二维表。数据库设计的第二大范式:要求表中只具有一个业务主键,也就是说符合第二范式的表并不能存原创 2020-05-15 11:20:11 · 1233 阅读 · 0 评论 -
Mysql 事务说明
事务的简介数据库是所有系统的核心模块,它存储在磁盘中,在逻辑上,以数据的形式呈现给用户,支持增删改查(CRUD)并在过程中保证数据的正确,可靠。而做到这一点的,就是事务(Transaction)。事务是数据库处理的最小单位,如果再细粒度划分,就会出现问题事务的四个特性(ACID):原子性(Atomicity):要么全部完成,要么全部取消,当对数据库进行操作时,根据业务逻辑,我们会操作个表中的数据,当一步操作出错时,会让该事务中的所有操作都回滚,数据还是未操作时的样子。举例: 当A向B转账时,具体原创 2020-05-12 09:32:42 · 164 阅读 · 0 评论 -
Mysql 锁简单梳理
锁的概念:锁是计算机协调多个线程或进程并发访问同一资源的机制。在数据库中,数据也是一种多个用户访问的资源,如何保证数据并发的一致性,有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。锁对数据库而言非常重要,也更加复杂Mysql 中的锁表级锁:开销小,加锁快;不会出现死锁,锁粒度大,发生锁冲突高,并发度最低行级锁:开销大,加锁慢,会出现死锁,粒度小,支持高并发,发生锁冲突低页面锁:开销和加锁事件介于 表级锁与行级锁之间,会出现死锁,锁表粒度介于锁表与锁行之间,原创 2020-05-12 09:15:12 · 164 阅读 · 0 评论 -
Mysql 逻辑架构 与存储引擎
架构图:Mysql 逻辑架构- 连接层当 Mysql 启动(Mysql 服务器就是一个线程),等待客户端连接,每一个客户连接请求,服务器都会创建一个线程来处理(如果是一个线程池的话,就分配一个空闲线程来处理),每个线程独立,拥有各自的处理空间,但是如果这个请求只是查询,就没关系,但是若是修改同一块内存,就会出现数据同步的问题。连接到服务器,服务器会对用户名,密码等进行验证,一旦连接成功,还...原创 2020-05-08 13:26:43 · 319 阅读 · 0 评论 -
Mysql 优化概述之 MysqlSlap 压测
优化的衡量指标:QPS:Queries Per Seconds (每秒查询的处理量) 同时适用于 InnoDB 和 MyISAM 引擎。QPS = QUESTIONS/UPTIME (查询的次数)/ 服务器的启动时间TPS:Transactions Per Seconds (每秒传输的事务处理个数),这是指服务器每秒处理的事务数,支持事务的存储引擎如 In...原创 2020-05-08 11:37:41 · 334 阅读 · 0 评论 -
数据库事务学习理解(二)事务是如何保证ACID的
如何保证原子性(Atomicity):要么全部完成,要么全部取消,当对数据库进行操作时,根据业务逻辑,我们会操作个表中的数据,当一步操作出错时,会让该事务中的所有操作都回滚,数据还是未操作时的样子。begin; -- 开始一个事务update table set A = A - 100; update table set B = B + 100;-- 其他读写操作commit; -- ...原创 2020-01-16 15:55:04 · 12914 阅读 · 2 评论 -
数据库事务学习理解(一)
什么是事务:数据库是所有系统的核心模块,它存储在磁盘中,在逻辑上,以数据的形式呈现给用户,支持增删改查(CRUD)并在过程中保证数据的正确,可靠。而做到这一点的,就是事务(Transaction)。事务的四个特性(ACID):1.原子性(Atomicity):要么全部完成,要么全部取消,当对数据库进行操作时,根据业务逻辑,我们会操作个表中的数据,当一步操作出错时,会让该事务中的所有操作都回...原创 2020-01-16 10:14:10 · 11627 阅读 · 0 评论 -
处理数据库模糊查询%,_问题(JAVA)
mybatis%_查询本文章向大家介绍mybatis%_查询(hibernate也可用相同的处理方式),具有一定的参考价值,需要的朋友可以参考一下。出现问题得原因在我们做web项目 使用模糊查询的时候,如果前端传% 或者 _ 查询,如果不处理的话,查询是所有的,这样的效果是不对的,所以需要对参数进行转译,从而达到想要的效果。mysql数据库:对于mysql来说:select * fro...原创 2019-08-13 11:00:59 · 14438 阅读 · 0 评论