一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时 MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已 经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。 假设我们创建了一个名为people的表: CREATE TABLE people
2024-11-08mysql 新版本出现group by 语句不兼容问题,当我们使用时会出现以下错误提示 解决办法如下:找到my.cnf,添加一下配置: sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION 如果镜像中未安装vim编辑器可以通过将配置文件覆盖的方式 docker cp mysql-wzs:/etc/mysql/my.cnf ./dist 该步骤是将镜像中的my.cnf复制到本地的dist目录下 修改之后,在将修改之后的覆盖回去docker
2024-11-08文章目录 1 日期函数 1. 常用日期函数 (1) add_months(date, n) : 'n' 个月前,'-n' 个月后 (2) months_between(date1, date2) : 月份差 'date1 - date2' 2. 时区(了解即可) (1) select dbtimezone from dual; (2) select sessiontimezone from dual; (3) select TZ_OFF
2024-11-08什么是多版本控制 多版本控制的优势 同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。 这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁。 当前读 它读取的数据库记录,都是当前最新的版本,会对当前读取的数据进行加锁,防止其他事务修改数据。是悲观锁的一种操作。 如下操作都是当前读: select lock in share mode (共享锁) select for update (排他锁)
2024-11-081. 索引 1.1 索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 : 1.2索引优势劣势 1.3 索引结构 索引是在MySQL的存储引擎层中实现的,而不是在服务器层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型的
2024-11-08一:背景介绍 SSM框架集合了Spring,MyBatis两个开源框架(SpringMVC是Spring中的部分内容),常用来开发数据源较为简单的web项目的框架 二:创建工程 1.新建一个Maven项目,选择根据maven-archetype-webapp这个原型构建web项目(之后就是根据提示一步步点即可) 2.项目创建完成以后.删除pom.xml文件中<name></name>后面的内容 4.在pom.xml添
2024-11-08select d.name,v.phone from (SELECT d.* FROM tablea d WHERE 1=1 limit #{currIndex} , #{pageSize} )as d left join tableb v on v.user_id = d.user_id where 1=1 and v.del_flag='0' or
2024-11-08MySQL排序函数整理 1. ROW_NUMBER() # 记录行号 SELECT ROW_NUMBER() OVER (ORDER BY `XXX` DESC) AS `Rank`, `colum_name` AS `name` FROM `table_name` 2. RANK() # 记录排名 (并列 跳跃) SELECT RANK() OVER (ORDER BY `XXX` DESC) AS `Rank`, `colum_name` AS `name` FROM `table
2024-11-08一般对于没有用的数据,都会经行删除,而删除通常使用的是DELETE和TRUNCATE命令。对于有条件地删除,基本上就会使用DELETE,当然还是没有绝对,用TRUNCATE也可以实现,只要把【不需要】删除的数据插入新表,然后truncate源表,再把数据导回来或者直接重命名新表就可以了。 下面例子主要比较全表删除的情况下DELETE 和TRUNCATE 之间的差异: 首先,先创建测试用例:本例使用AdventureWorks数据库。先创建3个表: --堆,即没有聚集索引 SELECT * I
2024-11-081.定义 百度百科: 控制流图(Control Flow Graph, CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块执行的可能流向, 也能反映一个过程的实时执行过程。 Frances E. Allen于1970年提出控制流图的概念。此后,控制流图成为了编译器优化和静态分析的重要工具。 维基百科: 原文: In a control-flow graph ea
2024-11-08