mysql
文章平均质量分 75
lans_g
追求卓越,成功就会在不经意间追上你。
展开
-
mysql中count()函数用法:count(1)和count(*)有什么区别?
在我们的日常开发中,经常会遇到计算一张表的行数的情况,通常情况下我们使用一条`select count(*) from t `语句就完事了。但是大家也可能看到count()函数的别的用法,比如`count(1)`、`count(字段名)`,那么他们和`count(*)`有什么区别呢?`count(*)`又是如何进行查询得到我们要的数据呢?...原创 2022-08-26 15:27:37 · 1452 阅读 · 0 评论 -
数据库设计的三范式
数据库设计三范式范式,就是数据库表的设计依据。第一范式:要求任何一张表必须有主键,每一个字段原子性不可再分。第二范式:建立在第一范式基础之上,要求所有非主键字段完全依赖主键,不要产生部分依赖。第三范式:建立在第二范式基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。设计数据库表时,按照以上的范式进行,可以避免表中数据的冗余。一、第一范式(有主键)要求任何一张表必须有主键,每一个字段原子性不可再分。最核心、重要的范式,所有表的设计都需要满足。二、第二范式(非复合主键)建立在第一原创 2022-05-24 09:02:57 · 1153 阅读 · 0 评论 -
limit分页查询使用
limit简介limit是将查询结果集的一部分取出来,通常用在分页查询中。dept(部门)表:emp(员工)表:salgrade(薪资)表:1.用法完整用法:limit startIndex,length startIndex是起始下标,length是长度,起始下标从0开始。eg.limit 0,5 表示从0开始,取长度为5的数据。缺省用法:limit length; 表示取前length条数据。eg.limit 5 表示取前5条数据。eg.取出工资排名在(原创 2022-05-22 11:21:28 · 2665 阅读 · 0 评论 -
mysql中连接查询总结(内连接、外连接、左右连接)
连接查询当我们需要用多张表联合起来查询数据时,称为连接查询。连接查询可以分为内连接、外连接和全连接。其中内连接分为等值连接、非等值连接和自连接。外连接分为左外连接(左连接)和右外连接(右连接)。笛卡尔积:当两张表进行连接查询,没有任何条件限制的时候,最终查询结果条数是两张表条数的乘积,这种现象被称为笛卡尔积现象。通过添加条件限制,可以筛选出我们需要的数据。一、内连接在内连接中,两张表是平等的。dept(部门)表:emp(员工)表:salgrade(薪资)表:1.等值连接等值连原创 2022-05-21 22:36:10 · 2895 阅读 · 1 评论 -
一文搞懂缓存和数据库的一致性问题(全面总结)
缓存是我们经常用到的,而如何解决缓存和数据库的一致性也是一个挺让人头疼的问题。原创 2022-05-08 18:37:24 · 7607 阅读 · 0 评论 -
MVCC详解,深入浅出简单易懂
一、什么是MVCC?mvcc,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。数据库并发有以下几种场景:读-读:不存在任何问题。读-写:有线程安全问题,可能出现脏读、幻读、不可重复读。写-写:有线程安全问题,可能存在更新丢失等。mvcc解决的就是读写时的线程安全问题,线程不用去争抢读写锁。mvcc所提到的读是快照读,也就是普通的select语句。快照读在读写时不用加锁,不过可能会读到历史数据。还有一种读取数据的方式是当前读,是一种悲观锁的操作。它会对当前读原创 2022-04-17 16:55:13 · 70924 阅读 · 21 评论 -
【mysql系列】一条(查询、更新)语句在mysql中是如何执行的?理解mysql底层
一、一条SQL查询语句是如何执行的?(读)我们要了解一条语句的执行流程时,首先应该明白mysql的基本架构是怎样的。我们将以下面这样一条语句为例,逐步分析其执行原理。select * from T where ID=10mysql的基本架构如下注意:缓存部分因为效率原因,在8.0以后已经被废除!从图中可以看出,mysql在服务端主要分为Server层和存储引擎层两个部分的。Server层:涵盖mysql大多数核心服务功能,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等原创 2022-04-17 14:27:38 · 1088 阅读 · 1 评论