
MySql
文章平均质量分 76
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
进朱者赤
阿里非典型程序员一枚:微信公众号同名,记录平平无奇程序员在大厂的打怪升级之路。
Java、大数据、数据结构算法
展开
-
MySQL中InnoDB的知识点
以上InnoDB的实现和运行原理到这里就介绍完了。回顾模块六,前三讲我主要介绍了数据库操作的性能优化,包括SQL语句、事务以及索引的优化,接下来我又讲到了数据库表优化,包括表设计、分表分库的实现等等,最后我还介绍了一些数据库参数的调优。原创 2024-05-26 08:00:00 · 1135 阅读 · 0 评论 -
MySQL调优之索引:索引的失效与优化
在大多数情况下,我们习惯使用默认的 InnoDB 作为表存储引擎。在使用InnoDB作为存储引擎时,创建的索引默认为B+树数据结构,如果是主键索引,则属于聚簇索引,非主键索引则属于辅助索引。基于主键查询可以直接获取到行信息,而基于辅助索引作为查询条件,则需要进行回表,然后再通过主键索引获取到数据。如果只是查询一列或少部分列的信息,我们可以基于覆盖索引来避免回表。覆盖索引只需要读取索引,且由于索引是顺序存储,对于范围或排序查询来说,可以极大地极少磁盘I/O操作。原创 2024-05-24 11:15:32 · 907 阅读 · 0 评论 -
MySQL中的当前读和快照读及其区别
当前读和快照读是MySQL中两种重要的读操作方式,它们在不同的场景下有着不同的应用。在选择使用哪种读方式时,需要根据具体的业务需求和场景来权衡数据一致性、并发性能以及幻读问题等因素。通过合理地使用这两种读方式,我们可以更好地保证数据库的事务隔离性和一致性。原创 2024-04-21 15:59:22 · 3163 阅读 · 2 评论 -
MySQL的查询计划(EXPLAIN)
在MySQL的查询计划(EXPLAIN)中,可以查看以下一些重要的指标来评估查询性能和索引使用情况:type:表示查询的访问类型,可以是常见的取值如"ref"、"eq_ref"、"range"、"index"等。这个指标表示了MySQL选择了哪种查询执行方式,可以帮助判断查询是否使用了合适的索引。key:表示查询使用的索引,如果该值为NULL,则表示查询没有使用索引,可能需要考虑优化查询或者添加适当的索引。rows:表示查询扫描的行数,即预计会读取的行数。这个指标可以帮助估计查询的开销和性能。原创 2023-10-26 19:52:46 · 669 阅读 · 0 评论 -
mysql5.5安装
MySQL下载地址:http://dev.mysql.com/downloads/installer/1、首先进入的是安装引导界面2、然后进入的是类型选择界面,这里有3个类型:Typical(典型)、Complete(完全)、Custom(自定义)。这里建议 选择“自定义”(Custom)安装,这样可以自定义选择MySQL的安装目录,然后点“Next”下一步,出现自定义安装界...原创 2019-05-21 20:16:50 · 185 阅读 · 0 评论 -
图解 MySQL 索引:B-树、B+树
基于哈希表实现,只有精确匹配索引所有列的查询才有效,对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),并且Hash索引将所有的哈希码存储在索引中,同时在索引表中保存指向每个数据行的指针。1️⃣中所描述的是索引存储时保存的形式,2️⃣是索引使用过程中进行的分类,两者是不同层次上的划分。1️⃣从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。2️⃣从应用层次来分:普通索引,唯一索引,复合索引。原创 2019-08-30 16:37:57 · 702 阅读 · 1 评论 -
SQL中的各种JOIN
JOIN类型用法说明注意事项INNER JOIN返回满足连接条件的交集,即返回同时存在于两个表中的行简为JOIN- 连接条件需要明确指定- 如果有多个连接条件,可以使用AND或者OR来组合- 如果连接条件不满足,对应的行将被排除在结果中LEFT JOIN返回左表中的所有行,以及右表中满足连接条件的匹配行。如果右表中没有匹配的行,则为NULL- 左表中的所有行都会被返回,无论是否有匹配的行- 右表中没有匹配的行将显示为NULL。原创 2020-03-22 19:17:54 · 11702 阅读 · 1 评论 -
on_unique:0/唯一 1/不唯一
non_unique:0/唯一 1/不唯一 (就是这个索引是否有唯一约束,0/有,1/没有)原创 2020-03-10 13:12:26 · 2030 阅读 · 0 评论 -
@Transactional 失效场景
1、检查方法是不是public的2、异常类型是不是unchecked异常 如果想check异常也想回滚怎么办,注解上面写明异常类型即可 @Transactional(rollbackFor=Exception.class) 类似的还有norollbackFor,自定义不回滚的异常3、数据库引擎要支持事务,如果是MySQL,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的4、是否开启了对注解的解析 <tx:annota...原创 2021-06-21 09:49:44 · 200 阅读 · 1 评论 -
hash索引详解
hash索引的弊端hash索引必须进行二次查找 hash索引无法用于排序 hash索引不支持部分索引查找也不支持范围查找 hash索引中hash码的计算可能存在hash冲突...原创 2019-09-27 22:35:40 · 925 阅读 · 0 评论 -
MySQL中的where和having的区别
一. 简介where对查询数据进行过滤having用于对已分组的数据进行过滤having和group by 必须配合使用(有having的时候必须出现group by)二. 用法whereselect * from table group by 字段 having 字段>10havingselect * from table having sum(字段)>100三.区别1. 被执行的数据来源不同where是数据从磁盘读入内存的时候进行判断,而having是磁盘读入内原创 2022-05-09 21:03:11 · 2870 阅读 · 4 评论 -
事务的隔离级别
一、事务的并发问题有哪几种?丢失更新:一个事务的更新覆盖了另一个事务的更新; 脏读: 一个事务读取了其他一个事务未提交的数据; 不可重复读: 不可重复读的重点是修改,同样条件下两次读取结果不同,也就是说,被读取的数据可以被其它事务修改; 幻读:幻读的重点在于新增或者删除,同样条件下两次读出来的记录数不一样。二、事务的隔离级别(四种)隔离级别决定了一个session中的...原创 2019-09-03 16:15:25 · 247 阅读 · 0 评论 -
图解SQL的JOIN操作
SQL中的各种join,含图原创 2023-01-31 17:25:08 · 157 阅读 · 0 评论 -
drop、truncate、delete三者删除的区别
文章目录一、用法1)delete 删除行或者清空表;2)runcate (清空表中的数据)3) drop二、异同三、总结一、用法1)delete 删除行或者清空表; 语法: delete from 表名 (where 列名 = 值)delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操原创 2021-10-19 15:11:38 · 1937 阅读 · 0 评论 -
Mysql中key 、primary key
看见建表语句,如下:PRIMARY KEY (`id`), KEY `uniq_jd_pin` (`jd_pin`) USING BTREE, KEY `uniq_phone_jd_pin` (`phone`,`jd_pin`) USING BTREE, KEY `idx_sync_state` (`sync_state`) USING BTREE“Key”是什么, 意思咧?...原创 2019-10-27 09:38:41 · 2458 阅读 · 0 评论 -
JDBC 流程
加载JDBC驱动程序:在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。例如://加载MySql的驱动类Class.forName("com.mysql.jdbc.Driver");成功加载后,会将Driver类的实例注册到DriverManage...原创 2019-04-28 23:31:39 · 137 阅读 · 0 评论 -
共享锁(S锁)和排他锁(X锁)
共享锁(S锁):共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。排他锁(X锁):用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。如果事务T对数据A加上排他锁后,则其他事务不能再对...转载 2019-09-04 00:22:34 · 999 阅读 · 0 评论 -
sql错误
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In aggregated query without GROUP BY, expression #3 of SELECT list contains nonaggregated column 'zmd_feima.s.brand_code'; this is inc...原创 2019-10-20 17:24:23 · 219 阅读 · 0 评论 -
如何查询varchar类型字段为空的纪录
SELECT*FROMMTBWHERE字段ISNULLOR字段=''原创 2020-03-08 17:43:24 · 681 阅读 · 0 评论 -
SQL中查询重复记录的几种方法
通过使用GROUP BY子句对需要检查重复记录的字段进行分组,并使用HAVING子句筛选出出现次数大于1的分组。原创 2020-01-09 07:02:42 · 3095 阅读 · 2 评论 -
聚簇索引&非聚簇索引创建
聚簇索引是按照索引列的顺序重新组织表中的数据,并将数据存储在磁盘上相邻的位置。一个表只能有一个聚簇索引,通常是主键索引。原创 2019-08-30 18:40:46 · 3861 阅读 · 1 评论 -
实验二 数据查询
实验名称 实验二 数据查询 实验教室 913 实验日期 2018年10月15日 学 号 2016214220 姓 名 ** 专业班级 计...原创 2019-05-21 20:35:01 · 4029 阅读 · 6 评论 -
实验一 数据定义和数据更新
文档下载: 实验名称 实验一 数据定义和数据更新 实验教室 913 实验日期 2018年10月8日 学 号 2016214220 姓 名 ** 专业班级 ...原创 2019-05-21 20:23:56 · 3639 阅读 · 9 评论 -
mysql的事务
mysql的事务四个特性以及事务的四个隔离级别一、事务四大属性分别是原子性、一致性、隔离性、持久性。1、原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。2、一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状...转载 2019-05-21 19:01:29 · 453 阅读 · 0 评论 -
MySql存储引擎
此外,如果你正在使用的是MySQL 5.7或更高版本,并且表中有正在运行的查询或事务,你需要在切换期间暂停这些活动,以防止错误或数据不一致等问题。从MySQL8.0开始,它就可以被称为过时了 – MySQL已经确保在使用InnoDB时,MyISAM可以完成的所有工作都可以完成,因此目前,只有当您希望简单的COUNT(*)查询更快时,MyISAM才非常有用。根据你的业务需求和数据特点,选择适合的存储引擎。它的优点是速度快,占用的存储空间小,但缺点是数据的安全性不高,不支持事务,不支持外键等。原创 2019-05-08 11:15:23 · 1998 阅读 · 0 评论 -
MySQL索引实现
MySQL索引实现1、MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址; MyISAM主索引和辅助索引在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复;2、InnoDB的数据文件本身就是索引文件,叶节点包含了完整的数据记录,这种索引叫做聚集索引。因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必...转载 2019-05-08 09:19:18 · 141 阅读 · 0 评论 -
mysql里Date类型的处理
表示时间类型有四个:Date,time,TimeStamp,DateTime1、Date(日期):显示格式 YYYY-MM-DD显示范围 1601-01-01 到 9999-01-01应用场景 只需要精确到天时,如生日等2、Time(时间)显示格式 HH:mm:ss显示范围 00:00:00 到 23:59:59应用场景 只需要每天的时间...原创 2019-05-04 11:25:38 · 5234 阅读 · 1 评论 -
事务隔离级别
1、什么是事务事务是一条或多条数据库操作语句的组合,具备ACID,4个特点。原子性:要不全部成功,要不全部撤销隔离性:事务之间相互独立,互不干扰一致性:数据库正确地改变状态后,数据库的一致性约束没有被破坏持久性:事务的提交结果,将持久保存在数据库中(通过redo和undo来实现得)2、事务并发会产生什么问题1)第一类丢失更新:在没有事务隔离的情况下,两个事务都同时...转载 2019-04-27 20:36:05 · 140 阅读 · 0 评论 -
Mysql数据库知识点
use test;create database 数据库名;alter database 数据库名;drop database 数据库名;create table 表名(列名 数据类型 数据约束,列名 数据类型 数据约束age int(4)alter table 表名;1)在表中增加新字段2)删除表中的字段3)修改表中字段的类型drop table 表名;原创 2019-04-20 19:51:12 · 877 阅读 · 1 评论 -
count(*) 和 count(1)和count(列名)区别
执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULLcount(1)包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULLcount(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计执行效率上: 列名为主键,count(列...转载 2019-04-20 19:43:47 · 233 阅读 · 0 评论 -
实验三 数据库的安全性和完整性控制
其中,学号是指你的学号,比如你的学号为20130001,则你创建的用户应该是S20130001u1,S20130001u2,S20130001u3,S20130001u4。(1)让“S学号u2”用户查询S20130001用户的SC表中选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。创建的用户成为该角色的成员,并授予一定的操作权限时,无法找到到哪儿去进 行权限设置,最后通过百度搜索找到如何设置角色的权限。(2)让“S学号u2”用户查询S20130001用户的SC表中各个课程号与相应的人数。原创 2019-05-21 20:51:58 · 10101 阅读 · 7 评论 -
学生信息管理系统 项目数据库设计说明书
学生信息管理系统项目数据库设计说明书专 业: 计算机科学与技术班 级: 2016级4班姓 名: **报告日期: 2018年12月目录第一部分:课程设计内容... 2第一章 绪论... 2...原创 2019-05-21 20:53:58 · 162 阅读 · 0 评论 -
B树,B+树,B-树,B*树
即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字;如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么B树的搜索性能逼近二分查找;原创 2019-08-30 18:39:26 · 619 阅读 · 1 评论 -
密集索引&稀疏索引&聚簇索引
对MyISAM 来说, 主键索引和其他索引没有任何区别, 都是稀疏索引 , 表数据存储在独立的地方, 表数据和索引的分开的, 索引用地址指向表数据。稀疏索引:文件只为索引码的某些值建立索引项, 比如 innodb的其他索引只存了键位信息和主键, myisam的所有索引都是。密集索引:文件中的每个搜索码值都对应一个索引值,就是叶子节点保存了整行, innodb只有一个。非主键索引:稀疏索引,非聚集索引/辅助索引,二级索引。主键的索引:密集索引,聚簇索引/聚集索引,一个是 frm :用于存储表的定义。原创 2019-08-30 16:22:22 · 1466 阅读 · 2 评论 -
索引分类
从数据结构角度1、B+树索引2、hash索引3、FULLTEXT索引(InnoDB引擎5.7以后支持)4、R-Tree索引(用于对GIS数据类型创建SPATIAL索引)从物理存储角度1、聚簇索引(clustered index)2、非聚簇索引(non-clustered index)从逻辑角度1、主键索引2、单列索引3、多列索引4、唯一索引...原创 2019-08-27 14:25:47 · 235 阅读 · 0 评论 -
MySQL存储引擎(常见的三种)
MySQL常见的三种存储引擎为InnoDB、MyISAM和MEMORY。其区别体现在事务安全、存储限制、空间使用、内存使用、插入数据的速度和对外键的支持。具体如下:1、事务安全:InnoDB支持事务安全,MyISAM和MEMORY两个不支持。2、存储限制:InnoDB有64TB的存储限制,MyISAM和MEMORY要是具体情况而定。3、空间使用:InnoDB对空间使用程...转载 2019-08-22 20:05:25 · 667 阅读 · 2 评论 -
for update
for update的字段为索引或者主键的时候,只会锁住索引或者主键对应的行。 当for update的字段为普通字段的时候,Innodb会锁住整张表。原创 2019-08-15 15:14:23 · 152 阅读 · 0 评论 -
数据库配置时useUnicode=true&characterEncoding=UTF-8
数据库连接时经常会写到:jdbc.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=UTF-8添加的作用是:指定字符的编码、解码格式。例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEn...原创 2019-07-12 16:50:39 · 4665 阅读 · 0 评论 -
聚集索引,非聚集索引,覆盖索引 原理
「数据库」和「数据库索引」这两个东西是在服务器端开发领域应用最为广泛的两个概念,熟练使用数据库和数据库索引是开发人员在行业内生存的必备技能使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。...转载 2019-05-25 09:04:21 · 152 阅读 · 0 评论 -
索引
定义:在关系数据库中,索引是对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。(索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。实际上,您可以把索引理解为一种特殊的目录)分类:聚集索引和非聚集索引。。。优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯...原创 2019-04-01 16:07:42 · 252 阅读 · 0 评论