![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 61
蓝天⊙白云
这个作者很懒,什么都没留下…
展开
-
mysql数据库多字段in写法
经常在写sql语句的时候会用到in的用法,以下内容讲解多个字段如何同时使用in,以下内容基于mysql 8.0进行讲解。转载 2023-09-15 17:48:02 · 1806 阅读 · 0 评论 -
mysql数据库列操作
【代码】mysql数据库列操作。原创 2023-09-12 11:15:49 · 131 阅读 · 0 评论 -
MySQL索引失效跑的8个场景
索引的底层是一颗B+树,那么联合索引的底层也就是一颗B+树,只不过联合索引的B+树节点中存储的是键值。在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效 举个例子,比如下面的查询语句,b 是主键,e 是普通列,从执行计划的结果看,是走了全表扫描。因为索引保存的是索引字段的原始值,而不是 b - 1 表达式计算后的值,所以无法走索引,只能通过把索引字段的取值都取出来,然后依次进行表达式的计算来进行条件判断,因此采用的就是全表扫描的方式。转载 2023-03-20 14:41:31 · 84 阅读 · 0 评论 -
MySQL-Explain详解
在select语句之前增加explain关键字,执行后MySQL就会返回执行计划的信息,而不是执行sql。但如果from中包含子查询,MySQL仍会执行该子查询,并把子查询的结果放入临时表中。转载 2023-03-06 14:34:19 · 306 阅读 · 0 评论 -
mysql的union和union all
union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;union 在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。union 和 union all 的区别是,union 会自动压缩多个结果集合中的重复结果,而 union all 则将所有的结果全部显示出来,不管是不是重复。union all:对两个结果集进行并集操作,包括重复行,不进行排序;如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。转载 2023-01-11 13:19:20 · 173 阅读 · 0 评论 -
SQL中的各种join操作
返回左边表中的所有行,即使右边表中没有行与之匹配,左边的行依然显示,右边没有匹配尚的显示为null。通俗理解,就是取两张表的并集;mysql中不支持该语法,但是可以采用UNION方式完成。和左连接正好相反,返回右边表的所有行,即使左边没有行与之匹配,未匹配上的显示null。MySQL自行根据相同的字段名判断并完成连接,不需要指定条件;内连接查询两张表直接的交集部分,只保留两张表都有的字段。如果查询左表独有,使用以下sql。查询右边表独有的数据。转载 2022-12-20 11:38:43 · 494 阅读 · 0 评论 -
mycat分片规则
在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,所以Mycat中通过数据冗余来解决这类表的join,即所有的分片都有一份数据的拷贝,所有将字典表或者符合字典表特性的一些表定义为全局表。拆分数据就需要定义分片规则。表分组(Table Group)是解决跨分片数据join的一种很好的思路,也是数据切分规划的重要一条规则。数据冗余是解决跨分片数据join的一种很好的思路,也是数据切分规划的另外一条重要规则。按照日期,将不同月甚至日的数据分散到不同的库中。原创 2022-09-06 15:54:18 · 701 阅读 · 0 评论 -
图文详解Mysql索引的最左前缀原则
当comments字段在联合索引里处于中间位置时,因comments > 1条件是一个范围值(所谓range),MySQL无法利用索引再对后面的views部分进行检索,即range类型查询字段后面的索引无效。最主要是因为MySQL中有查询优化器explain,所以sql语句中字段的顺序不需要和联合索引定义的字段顺序相同,查询优化器会判断纠正这条SQL语句以什么样的顺序执行效率高,最后才能生成真正的执行计划。如果查询多个字段的时候,出现了中间是范围的话,建议删除该索引,剔除中间索引即可。转载 2022-09-05 15:26:27 · 932 阅读 · 0 评论 -
数据库的4种隔离级别
在这个级别下,普通的查询同样是使用的“快照读”,但是,和“读提交”不同的是,当事务启动时,就不允许进行“修改操作(Update)”了,而“不可重复读”恰恰是因为两次读取之间进行了数据的修改,因此,“可重复读”能够有效的避免“不可重复读”,但却避免不了“幻读”,因为幻读是由于“插入或者删除操作(Insert or Delete)”而产生的。他看到的是老板还没提交事务时的数据。因此,在这种隔离级别下,查询是不会加锁的,也由于查询的不加锁,所以这种隔离级别的一致性是最差的,可能会产生“脏读”、“不可重复读”、“转载 2022-09-05 14:52:52 · 1578 阅读 · 0 评论 -
细说Mysql间隙锁
1.什么是间隙锁?间隙锁是怎样产生的?2.间隙锁有什么作用?3.使用间隙锁有什么隐患?转载 2022-09-05 14:00:03 · 808 阅读 · 1 评论 -
Mysql中锁的类型
又称为读锁,S锁,当一个事务为数据加上读锁之后,其他事务只能对该时间加读锁,而不能对数据加写锁,知道所有读锁释放之后,其他事务才能对其进行加持写锁。锁住的是表中的一行或者多行记录,其他事务访问同一张表的时,只有被锁住的记录不能访问,其他的记录可以正常访问。也是行锁的一种,总结说就是记录所和间隙锁的组合,临键锁会把查询出的记录锁住,并且吧范围查询内的所有间隙也锁住。行锁的一种,和行锁的不同是,只能锁某一行的记录,属于精准命中,命中字段为唯一索引。粒度更小,加锁更困难,不易冲突,支持更高的并发。转载 2022-09-05 13:52:36 · 195 阅读 · 0 评论 -
SQL执行顺序
ON是最先执行,WHERE次之,HAVING最后,因为ON是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,WHERE也应该比HAVING快点的,因为它过滤数据后才进行SUM,在两个表联接时才用ON的,所以在一个表的时候,就剩下WHERE跟HAVING比较了。我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?.....转载 2022-08-01 15:41:15 · 1493 阅读 · 0 评论 -
mybatis for each循环详解
foreach的第一篇用来将List和数组(array)。foreach一共有三种类型,分别为List,下面表格是我总结的各个属性的用途和注意点。Map对象没有默认的键。转载 2022-08-01 14:17:27 · 656 阅读 · 0 评论 -
MysqlPlus配置详解
mysqlPlus配置文件详解转载 2022-07-07 14:32:18 · 1469 阅读 · 0 评论 -
Mysql获取表的所有列信息
使用数据库时,有时候我们需要查看所有列信息,并能够轻松导出到excel进行编辑,可以使用以下语句来实现。原创 2022-07-07 14:28:00 · 3153 阅读 · 0 评论 -
mysql分区讲解及操作语句
1. 创建分区(1)创建range分区根据数值范围:根据DATE、DATETIME范围:添加COLUMNS关键字可定义非integer范围及多列范围,不过需要注意COLUMNS括号内只能是列名,不支持函数;多列范围时,多列范围必须呈递增趋势:根据多列范围:当需要删除一个分区上的“旧的”数据时,只删除分区即可。如果你使用上面最近的那个例子给出的分区方案,你只需简单地使用”alter tablestaff drop partitionp0;”来删除所有在1991年前就已经停止工作的雇员相对应原创 2022-07-06 15:29:53 · 2748 阅读 · 0 评论 -
数据库存储---表分区
随着项目的发展,数据库的单表数据也越来越多,相关操作也就越来越慢,这个时候我们要怎么才能提高我们的相关操作效率呢?很多人都听说过分库分表,但是还有一个分区的方式可能被忽略了,在数据量还未达到千万级别的时候,我们也许还能够使用分区的方式,让一个表的数据分布在不同的文件上面,当然我们要清楚我们的表数据都是按照文件的方式存放在磁盘上面的,分区和分表是不同的意思,分区是指将一个表的数据按照条件分布到不同的文件上面,未分区前都是存放在一个文件上面的,但是它还是指向的同一张表,只是把数据分散到了不同文件而已,但是分表却转载 2022-07-06 14:35:55 · 515 阅读 · 0 评论 -
数据分片介绍
传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量数据的场景。从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降; 同时,高并发访问请求也使得集中式数据库成为系统的最大瓶颈。从可用性的方面来讲,服务化的无状态性,能够达到较小成本的随意扩容,这必然导致系统的最终压力都落在数据库之上。 而单一的数据节点,或者简单的主从架构,已经越来越难以承担。数据库的可用性,已成转载 2022-07-06 14:34:39 · 811 阅读 · 0 评论 -
sql server char nchar varchar和nvarchar的区别
sql server字符串类型区别原创 2022-07-04 16:27:17 · 188 阅读 · 0 评论 -
sql server学习笔记
查询结果后插入另外一张表在SQL Server中,不支持 Limit 语句,可以用以下方式解决。虽然SQL Server不支持 Limit ,但是它支持 TOP。(1)如果要查询上述结果中前6条记录,则相应的SQL语句是:(2)如果要查询上述结果中第 7 条到第 9 条记录,则相应的SQL语句是:如果要查 n-m之间的数据 第4行的数字是n-1,第一行的数字是m-n+1,从而实现分页。5. 字符串拼接MySQL 采用 concat () 函数,SQL Server 的字符串拼接采用原创 2022-07-04 14:30:33 · 1239 阅读 · 0 评论 -
mapper.xml文件中的注释
在mapper.xml文件中,注释方式为,直接采用Java代码方式的注释会报错,尤其是在SQL语句中出现这种注释方式时。昨天在导入数据时需要对数据进行验证,在mapper文件中对表中数据进行查询,将作废sql注释时选择了Java方式,此时会报错。 在解析时由于会将参数位置解析为占位符‘?’,所以此时以下的sql会在后台解析成如下,但是传入的参数只有两个,所以这个时候会报 “Caused by: java.sql.SQLException: 无效的列索引”,因为传入的参数和占位符数量不等。 总结 1、m转载 2022-07-04 10:51:22 · 2896 阅读 · 0 评论 -
数据库--SqlServer详解
数据库–SQLServer详解 零、文章目录 一、数据库概念 1、数据库基本概念 (1)数据库(DataBase:DB) 数据库是是按照数据结构来组织、存储和管理数据的仓库。---->存储和管理数据的仓库是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。注意:我们一般说的数据库,就是指的DBMS使用指针来表示数据之间的联系。经典的里程碑阶段,代表的DBMS有:Oracle、DB2、MySQL、转载 2022-07-01 19:16:33 · 2629 阅读 · 0 评论 -
SQL Server 安装指南
SQL Server 安装指南 安装 SQL-Server。 (1) 从微软官网中下载 SQL Server 2019 Developer版,可直接复制以下链接打开,本实验过程环境选择的是 windows,可以根据自身电脑进行环境的选择。 下载链接 (2) 下载完成之后打开文件(.exe)所在位置,右击以管理员的身份运行该程序,一般选择安装类型为:自定义。然后即可下载安装程序包(下载时间有点长,请耐心等待一下): 选择【安装】,点击【全新 SQL Server 独立安装或向现有安装添加功能】 (3)转载 2022-07-01 19:10:30 · 3562 阅读 · 1 评论 -
mybatis学习笔记重点梳理
Mybatis温习笔记解析时将传入的数据都当成一个字符串,会对传入的变量自动加一个单引号。如:user_id = #{userId},如果传入的值是111,那么解析成sql时的值为user_id = ‘111’,如果传入的值是id,则解析成的sql为user_id = ‘id’。解析时,会将传入的参数直接显示生成在sql中,且不加任何引号。如:user_id = ${userId},如果传入的值是111,那么解析成sql时的值为user_id = 111 , 如果传入的值是id,则解析成的sql为use原创 2022-06-17 13:46:09 · 230 阅读 · 0 评论 -
mysql解压版安装教程
1. mysql解压包下载地址https://downloads.mysql.com/archives/community/选择对应的版本和位数下载即可。2. 解压到电脑上注意如果是新电脑,需要下载DirectX微软修复工具,防止出现缺少C++类库导致安装错误。3. 在解压路径Mysql\mysql-5.7.29-winx64下新建my.ini配置文件,内容如下:注意:目录分割符号采用\,不要使用\环境变量path中配置:打开解压的目录进入到bin目录,然后复制当前文件的目录mysq原创 2022-06-07 14:51:47 · 6943 阅读 · 0 评论 -
MySQL索引类型详解
索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同。MySQL 索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。存储方式区分根据存储方式的不同,MySQL 中常用的索引在物理上分为 B-树索引和 HASH 索引两类,两种不同类型的索引各有其不同的适用范围。B-树索引B-树索引又称为 BTREE 索引,目前大部分的索引都是采用 B-树索引来存储的。B-树索引是一个典型的数据结构,其包含的组件主要有以下几个:(1)叶子节点:包含的条目直接指向表里的数据行。叶子节点之间原创 2022-05-16 10:34:56 · 462 阅读 · 0 评论 -
Mysql使用内置函数模糊查询
判断字符串(string)中是否包含另一个字符串(subStr)LOCATE(substr,str) :函数返回subStr在string中出现的位置LOCATE(substr,str,pos)POSITION(substr IN str)INSTR(str,substr)FIND_IN_SET(‘字符’, 字段名);##find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。使用示例:SELECT * from (SELECT原创 2022-03-24 17:12:25 · 735 阅读 · 0 评论