MySQL
文章平均质量分 92
bug师姐
bug师姐
展开
-
好色面试官为小哥们整理的mysql思维导图,可分享xmind等可编辑格式
mysql思维导图,想要可编辑版本的联系我要原创 2022-05-19 00:14:13 · 886 阅读 · 1 评论 -
一分钟了解Mysql的间隙锁——《深究Mysql锁》
什么是间隙锁?间隙锁是一个在索引记录之间的间隙上的锁。间隙锁的作用保证某个间隙内的数据在锁定情况下不会发生任何变化。比如我mysql默认隔离级别下的可重复读(RR)。当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值为10的行使用记录锁。select * from t where id = 10 for update;// 注意...原创 2018-09-04 16:37:20 · 34323 阅读 · 23 评论 -
一分钟深入Mysql的意向锁——《深究Mysql锁》
延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁mysql锁相关讲解及其应用——《深究mysql锁》了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没有MVCC的知识,理解起来会总觉得不明朗。本来我的这个只是个记录,并不是专门的讲给别人看的,后发现有不少人看,我还是专门加上这篇文章的链接。在《五分钟了解Mysql的行级锁》中说到,InnoDB为了让表...原创 2018-08-24 14:29:56 · 27754 阅读 · 23 评论 -
一分钟理清Mysql的锁类型——《深究Mysql锁》
延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁一分钟深入Mysql的意向锁我们常用的存储引擎就MyISAM和InnoDB。MyISAM存储主要就简单的表级别锁,下面只说InnoDB的各种锁类型。InnoDB不仅支持行级别的锁,也支持表级别的锁。平常我们会听到各种锁,你是不是不仅迷茫它们怎么用的,还会迷茫它们 各自之间都是什么关系?什么是乐观锁和悲观锁?...原创 2018-08-25 16:43:14 · 5484 阅读 · 1 评论 -
mysql锁相关讲解及其应用——《深究mysql锁》
一、mysql的锁类型(1) 共享/排它锁(Shared and Exclusive Locks)共享锁和排他锁是InnoDB引擎实现的标准行级别锁。拿共享锁是为了让当前事务去读一行数据。拿排他锁是为了让当前事务去修改或删除某一行数据。。设置共享锁:select * from user where id = 1LOCK IN SHARE MODE;设置排他锁:sel...原创 2018-10-24 15:39:55 · 9429 阅读 · 6 评论 -
SQL拆分实现与注意事项
SQL拆分的背景任何系统的设计都是在不断的迭代中改进的,在系统最初的阶段,能够最快的完成功能是首要任务,这就会导致我们在写数据查询时使用了大量的关联查询。而当系统用户慢慢增加到我们不得不分库分表的时候,原先的关联查询就会失效,这就迫使我们不得不将之前的关联查询拆分开,然后利用代码逻辑进行关联操作。如何拆分SQL(left join 拆分)其实,各种关联操作的拆分思想基本是一样的,只是在不同的...原创 2019-03-18 17:41:39 · 3815 阅读 · 0 评论 -
五分钟了解Mysql的行级锁——《深究Mysql锁》
我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定 表级锁定参考:三分钟了解Mysql的表级锁——《深究Mysql》 页级锁定参考:[三分钟了解Mysql的页级锁——《深究Mysql》]一、定义每次锁定的是一行数据的锁机制就是行级别锁定(r......原创 2018-08-23 18:41:50 · 50437 阅读 · 16 评论 -
三分钟了解Mysql的表级锁——《深究Mysql锁》
我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。可根据不同的场景选用不同的锁定机制。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定一、定义每次锁定的是一张表的锁机制就是表级别锁定(table-level)。它是MySQL各存储引擎中粒度最大的锁定机制。二、优缺点1. 优点...原创 2018-08-23 16:17:34 · 8410 阅读 · 0 评论 -
MySQL的查询性能优化——《深究MySQL》
写在前面mysql查询缓慢的原因有哪些? 1.查询语句是否请求了不必要的多余数据 2. 总结以上原因之后,优化数据库性能,就需从以下几个方面着手: 1.- 在说明:下面的知识为零散的记录,后期需要整理mysql优化方面1.in 和 exsits的区别和效率参考:https://www.cnblogs.com/emilyyoucan/p/7833769.h...原创 2018-05-15 07:22:03 · 1262 阅读 · 0 评论 -
sql语句常见问题集锦
一、group by 、where、having问题group by要求返回的所有字段,要么出现在聚合函数(avg、sum、count、max、min等)中,要么出现Group By后面作为分组依据,不然高版本的mysql会报错。如: select albumId,programId,sum(playNum) as playNum,sum(onlineNum ) as onlineNum fr原创 2016-12-27 09:17:18 · 2712 阅读 · 0 评论 -
mysql计算某一天所在周或月的第一天和最后一天
某一天所在周的第一天: 我们知道国外的星期的第一天是从星期天开始的,所有DAYOFWEEK(‘2017-3-10’)函数的第一天是星期天: SELECT CASE WHEN DAYNAME(DATE(‘2017-3-10’))=’Sunday’ THEN DATE_SUB(DATE(‘2017-3-10’),INTERVAL 6 DAY) ELSE DATE_ADD(‘2017-3-原创 2017-03-03 10:07:52 · 4805 阅读 · 0 评论 -
主键、外键和索引的区别
定义:主键:唯一标识一条记录,不能有重复的,不允许为空外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值索引:该字段没有重复值,但可以有一个空值作用:主键:用来保证数据完整性外键:用来和其他表建立联系用的索引:是提高查询排序的速度个数:主键:主键只能有一个外键:一个表可以有多个外键索引:一个表可以有多个唯一索引添加:主键:ALTER TABLE “表名” ADD PRIMARY KEY原创 2017-02-24 17:15:16 · 16828 阅读 · 3 评论 -
MySql优化
Mysql的优化可以从 数据库表结构、SQL语句、索引几方面进行优化1 Sql语句优化1.1 Mysql的慢查询日志的开启方式和存储格式我们的sql语句查询可能有会很慢等问题,我们就希望存入日志中以供我们查看详细。这就用到了MySql的慢查询日志1.查看慢查询日志是否开启:show variables like ‘slow_query_log’2.开启慢查询日志:SET GLOBAL slow_q原创 2016-10-25 16:10:33 · 398 阅读 · 0 评论 -
MySQL概要——《深究MySQL》
1. MySQL架构MySQL的存储引擎架构将查询处理等系统任务和数据的存或取相分离。这种分离设计使得可根据不同的需求选择不同的存储方式。存储引擎不会解析SQL,InnoDB例外,它会解析外键定义,因为MySQL服务器本身没有实现该功能。MySQL会解析查询并创建内部数据结构(解析树),然后对其进行重写查询、决定表的读取顺序、选择合适的索引等优化。2. 锁读锁(也叫共享...原创 2017-12-03 22:23:27 · 624 阅读 · 0 评论 -
优化MySQL数据类型——《深究MySQL》
1. 选择数据类型总体原则1.1 操作整型比字符简单 因为字符的字符集和校对规则(排序规则)使得字符的比较比整型的比较更为复杂。 如我们应该用datetime、date或time存储日期类型,而不是字符串。 我们也应该用整型来存储IP地址。 1.2 尽量避免Null NULL的列可使得索引、索引统计和值的比较都更复杂。 可为NULL的列会占用更多的存储空间,因为原创 2018-01-01 22:22:54 · 629 阅读 · 0 评论 -
高性能的索引实现——《深究MySQL》
本篇主要总结的使索引更高效的方式1.独立的列独立的列,指的是建了索引的列不能在sql查询语句中进行计算。不然索引会失效。错误示例: select * from user where user_id +1 =11; select * from user DATE(create_date) > ‘2017-10-10’;如果create_date建了索引,该索引会失效。...原创 2018-01-03 22:20:27 · 379 阅读 · 0 评论 -
补充spring事务传播性没有考虑的几种情况
事务在数据库中的几个重点:数据库执行事务的时候,是先将数据插入到日志中,如果没有遇到回滚,则在提交事务的时候将日志操作同步到数据库。如果回滚的话,则日志的操作不再插入数据库中。如果发生回滚,则主键还是会增大的即主键会变得不连续。例如,本应该插入的数据id为100,但是发生了回滚,则后面再正确插入的数据的主键会是101。JDBC对事务的支持是放在Connection连接中的。事务在s...原创 2018-05-12 12:11:14 · 541 阅读 · 0 评论 -
事务
一、事务知识概念:由一步或几步操作序列组成的逻辑执行单无(要么全部成功,要么全部失败)特性:ACID 1) 原子性:事务是应用中最小的逻辑执行体 2) 一致性:事务的执行结果必须使用数据库的数据保持正确 3) 隔离性:各个事务的执行互不干扰 4) 持续性:事务提交之后,数据的改变要保存进数据库,也叫持久性提交 1) 自动提交:执行DDL或DCL语句或程序正常退出时会自动提交 2)原创 2016-11-20 15:06:07 · 448 阅读 · 0 评论