mysql
文章平均质量分 82
FserSuN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql8 loose index skip scan 特性加速分组查询性能
MySQL的Loose Index Scan(松散索引扫描)通过利用索引有序性,仅读取每个分组的第一条记录来加速GROUP BY查询。相比常规方式需要扫描所有数据并创建临时表,Loose Index Scan直接跳过同组冗余数据,通过索引快速定位每个分组的首条记录来确定MIN/MAX值。这种优化将时间复杂度从O(N)降到O(M)(M为分组数),显著提升性能。关键前提是GROUP BY列必须为索引最左前缀且仅使用MIN/MAX聚合函数。原创 2025-12-06 21:46:38 · 681 阅读 · 0 评论 -
mysql分组(group by)后检查是否包含某些值的学习
1 背景 开发业务使用mysql数据库时,为了扩展性通常会使用列表(纵表)。如下图,在这个表中抽象出类型和值,当类型增加后,不需要改表结构,直接插入即可。 表名:config type value 1 出行 1 饮食 1 娱乐 2 饮食 2 娱乐 有时候通过这类表建立配置表。初始会通过人工导入一些数据,同时要求数据必须满足某些条件,比如表中约定任意一个type都必须要有“出行”这个值。 在人工操作时,有时会发生忘记导入某些数据。从上面的例子看,就是2这个类型下缺少了出行这原创 2020-11-20 21:52:12 · 10093 阅读 · 0 评论 -
MySql通过update语句交换两行记录非唯一的属性
MySql交换两行记录通过update语句交换两行记录非唯一的属性现有表student,定义如下。CREATE TABLE `student` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `date` datetime DEFAULT NULL, PRIMARY KEY (`Id`), KEY `id_date` (`date`) ) ENGINE=InnoD翻译 2017-05-21 12:26:11 · 5004 阅读 · 0 评论 -
MyBatis,MySql存储过程分页查询
前言一般我们使用MyBatis时进行分页主要通过使用PageHelper这个插件。但某些时候,在某些公司可能会遇到跨库查询并分页显示的场景,这时就无法在使用PageHelper了。如果待查询的MySql不同库在一台机器上那么可以通过 数据库名.表明 的形式来进行跨库查询,这是可以通过存储过程来完成查询。 编写存储过程 以学生信息查询为例,例如有两个库。 学生库student(学生信息表 stu_i原创 2017-04-23 19:49:01 · 4449 阅读 · 0 评论 -
如何处理MySql死锁
当MySql发生死锁后,InnoDB将自动检测事务死锁,并立刻回滚,然后返回错误。回滚通常选择undo量最小的事务。翻译 2017-04-30 23:56:25 · 6669 阅读 · 0 评论 -
在MySql存储过程中使用事务
在MySql存储过程中使用事务现有如下的存储过程,执行插入操作。其中bill表中id为primary key,其它为字段为普通字段,没加任何索引与约束,多余的省略,不予展示。DROP PROCEDURE IF EXISTS transactionTest; CREATE PROCEDURE transactionTest() BEGIN INSERT INTO bill(`id`, `mon翻译 2017-03-30 00:50:09 · 4653 阅读 · 0 评论 -
解决java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
java.sql.SQLException: Value ‘0000-00-00’ can not be represented as java.sql.Date 异常的解决方法查询数据时候遇到这个异常,stackoverflow上一条回答解决办法是通过给jdbc链接增加zeroDateTimeBehavior参数来解决。 jdbc:mysql://yourserver:3306/yourdat翻译 2016-10-30 15:50:44 · 9070 阅读 · 0 评论 -
MySql 中的临时表
MySql中的临时表在保存临时数据时非常有用。临时表创建后,若客户端会话终止,临时表将会被删除。MySql 3.23版本加入了临时表。如果MySql版本低于3.23则无法使用临时表。临时表仅在会话存在时而存在。如果运行PHP脚本中的代码,当脚本运行结束,临时表将会被删除。如果是通过 MySql客户端连接MySql数据库服务器,临时表会一直存在,直到使用者关闭客户端或删除表时。例子mysql> CR翻译 2016-10-18 23:16:55 · 1390 阅读 · 0 评论 -
MySql中使用游标遍历记录并生成结果
今天因项目需求要写存储过程,对查询的记录进行统计并生成报表返回给调用者。在编写过程中碰到一些问题记录于此。整体思路如下。 拿到候选记录。 进行统计。 生成结果返回。 步骤1通过获取候选记录集合并创建游标即可。 步骤2需要对结果集进行遍历。 步骤3需要创建临时表,并将2遍历时的数据插入最后返回。遍历最关键的是要判断什么时候循环结束。这里用到了 DECLARE … HANDLER[1],通过这条语原创 2016-10-19 01:24:11 · 13105 阅读 · 0 评论
分享