
MySQL
文章平均质量分 74
点滴~
进阶中的工程师
展开
-
慢SQL如何定位处理?
给你张表,发现查询速度很慢,你有那些解决方案mysql的explain有什么作用?如果Explain用到的索引不正确的话,有什么办法干预吗?MySQL | CS-Notes 面试笔记对于索引,在开发中需要注意什么?_索引需要注意啥-优快云博客概述:MySQL 主从同步,读写分离技术以及集群的搭建,SQL 调优_mysol 主从同步,读写分离和集群的搭建-优快云博客explain 执行分析,主要关注哪些字段,为什么?_explain主要关注哪些字段-优快云博客原创 2025-02-28 23:52:52 · 222 阅读 · 0 评论 -
对于索引,在开发中需要注意什么?
在开发中使用索引时,需要根据查询需求设计合理的索引,避免索引失效和过度索引。同时,定期监控和维护索引,确保其能够有效提升查询性能。通过合理使用索引,可以显著提高数据库的查询效率,降低系统负载。原创 2025-02-10 22:35:41 · 694 阅读 · 0 评论 -
MySQL相关知识点
通过以上多种方法的综合应用,可以有效地对 SQL 进行调优,提高数据库的性能和响应速度。原创 2025-02-19 23:13:53 · 136 阅读 · 0 评论 -
数据库系统原理
只要数据行快照的事务 ID(TRX_ID)处于当前未提交事务列表的最小值(TRX_ID_MIN)和最大值(TRX_ID_MAX)之间,该快照就不可使用。判断数据行快照是否可用的依据是事务 ID(TRX_ID)是否在当前未提交事务列表(TRX_IDs)中。总结来说,在提交读隔离级别下,一个事务只能看到其他事务已经提交的修改,未提交的修改对它是不可见的。同样假设有三个事务:事务 A、事务 B 和事务 C,它们的事务 ID 分别为。假设有三个事务:事务 A、事务 B 和事务 C,它们的事务 ID 分别为。原创 2025-02-20 22:17:40 · 120 阅读 · 0 评论 -
索引的实现原理
这篇文章是介绍MySQL数据库中的索引是如何根据需求一步步演变最终成为B+树结构的以及针对B+树索引的查询,插入,删除,更新等操作的处理方法。Oracle和DB2数据库索引的实现基本上也是大同小异的。文章写得很通俗易懂,就转在这了。关于B+树和索引内部结构可以参考:《B 树、B- 树、B+ 树和B* 树》和《深入理解DB2索引(Index)》。00 – 背景知识- B-Tree & B+T...转载 2018-05-23 10:40:32 · 253 阅读 · 0 评论 -
Mysql 数据库几种引擎的区别比较
MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。(提供行级锁)BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。 Memory:将...转载 2018-06-05 10:18:34 · 4836 阅读 · 0 评论 -
MySQL 主从复制原理
主从形式一主一从主主复制一主多从---扩展系统读取的性能,因为读是在从库读取的;多主一从---5.7开始支持联级复制用途及条件mysql主从复制用途实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务主从部署必要条件:主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库主从原理mysql主从复制原理 从库生成两个...转载 2018-06-01 15:31:33 · 264 阅读 · 0 评论 -
数据库SQL优化实践
负向条件查询不能使用索引select * from order where status!=0 and stuuts!=1not in/not exists都不是好习惯可以使用优化为in查询:select * from order where status in(2,3)前导模糊查询不能使用索引select * from order where desc lik...原创 2018-09-02 01:57:29 · 589 阅读 · 1 评论 -
InnoDB使用的七种锁
默认事务隔离级别为可重复读(Repeated Read, RR)InnoDB的锁,与索引类型,事务的隔离级别相关自增锁自增锁是一种特殊的表级别锁(table-level lock),专门针对事务插入AUTO_INCREMENT类型的列。最简单的情况,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。共享/排他锁共...原创 2018-09-02 19:21:27 · 1991 阅读 · 4 评论 -
mysql进阶(十)数据库事务四大特性
数据库事务四大特性 原子性、一致性、分离性、持久性原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。 假如用户在一个事务内...转载 2018-04-13 23:37:23 · 199 阅读 · 0 评论 -
MySQL的悲观锁与乐观锁
悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍。悲观锁(Pessimistic Lock)悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。通常所说的“一锁二查三更新”即指的是使用悲观锁。通常来讲在数据库上的悲观锁需要数据库本身提供...转载 2018-04-06 14:24:29 · 230 阅读 · 0 评论 -
mysql进阶(九)多表查询
MySQL多表查询一 使用SELECT子句进行多表查询SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id...转载 2018-04-12 13:20:11 · 268 阅读 · 0 评论 -
mysql进阶(二)索引简易教程
Mysql索引简易教程 基本概念 索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容。在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找。找到的这些符合条件的字段后再读取字段A所指向真实的数据记录的物理地址,再把对应的数据内容输出。如果你查找的不是索引的字段那么他会从数据表里面查找。因为数据表有很多不相关的字段...转载 2018-04-11 18:37:47 · 171 阅读 · 0 评论 -
SQL中的左连接,右连接和内连接
举例说明,A表(a1,b1,c1) B表(a2,b2)左连接select A.*,B.* from A left outer join B on(A.a1=B.a2)结果是:右连接:select A.*,B.* from A right outer join B on(A.a1=B.a2)结果是:内连接:SELECT * FROM a, b where a.a1=b.a2,这两种写法一样结果是:...原创 2018-04-04 15:50:02 · 317 阅读 · 0 评论 -
mysql游标简易教程
mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎。InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键),灾难恢复能力等等。现在简单总结一下游标的知识。(一)认识游标(cursor)游标简单来说就是查询出来的数据索引,通过对游标的操作(第一个位置、最后一个位置、上一个位置、下一个位置)可...转载 2018-04-11 21:54:17 · 346 阅读 · 0 评论 -
mysql进阶(四)mysql中select
mysql中select * for update注: FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效。作用锁定该语句所选择到的对象。防止在选择之后别的地方修改这些对象造成数据不一致。要保证在统计(查询)执行过程中,记录不被其他用户更新,则可以使用For update子句进行加锁。这样在这个锁释放前其他用户不能对这些记录作update、delet...转载 2018-04-11 22:42:12 · 292 阅读 · 0 评论 -
mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询。使用OR关键字时:条件1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来。2) 如果不符合这些查询条件中的任何一条,这样的记录将被排除掉。语法格式OR关键字的基本语法格式如下:条件表达式1 OR 条件表达式2 [...OR 条件表达式n]OR可以连接两个条件表达式,同时可以使用多个OR关键字,以连接更多的条...转载 2018-04-11 23:56:31 · 663 阅读 · 0 评论 -
mysql进阶(六)模糊查询的四种用法介绍
mysql中模糊查询的四种用法介绍这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下。 下面介绍mysql中模糊查询的四种用法: 1 %:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”、...转载 2018-04-12 13:04:04 · 349 阅读 · 0 评论 -
mysql进阶(七)limit的用法
limit是mysql的语法select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select * from tablename limit 2,4即取出第3条至第6条,4条记录。...转载 2018-04-12 13:11:22 · 168 阅读 · 0 评论 -
mysql进阶(八)怎么对varchar类型排序问题
MySQL中怎么对varchar类型排序问题asc 升级desc降序在mysql默认order by 只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,下面我来给各位同学介绍varchar类型排序问题如何解决。今天在对国家电话号码表进行排序的时候发现了一个有趣的问题,我想让isdcode字段按照由小到大的顺序排序,于是乎我是这样写的SELECT * FROM gb_cou...转载 2018-04-12 13:18:20 · 435 阅读 · 0 评论 -
MySQL系列之一:数据库设计
前言这里将以前不怎么熟悉的数据库设计知识重新拾起,做一个简单的知识梳理。之前一直认为数据库设计无非就是创建数据库、建表、添加字段、确定字段类型(这点随意性很大),诸如此类。当系统地对数据库知识重新学习的时候才发现数据库设计也有一套类似软件开发流程的规范,并且每一个步骤都是有不同的侧重点的。 数据库设计的概念简单来说,数据库设计就是对需求进行分析、逻辑设计、物理设计以及维护和优化的过程。可以看到,数...转载 2018-04-11 17:11:23 · 345 阅读 · 0 评论