数据库
水下五米
我愿我是 孟春的风,仲夏的雨,季冬的雪。为一时之景。
展开
-
mysql复制事件到另一个库执行
先查询出来库里面的时间并进行拼接。然后到另一个库执行。原创 2024-03-05 19:33:01 · 365 阅读 · 0 评论 -
mysql数据大量删除,较慢问题
终极写法:我们可以换个思路,把要保留的数据insert 到临时表。然后使用这张临时表。一般写法:delete from table1 where XXX;需求:我有100W数据要删除30W数据,顺序不连续,根据where 条件删除。进阶写法:分批删除。每次删除1W条数据,减小事务的大小。原创 2023-06-30 11:37:43 · 613 阅读 · 0 评论 -
mysql 触发器使用
mysql触发器原创 2022-12-06 14:34:40 · 277 阅读 · 0 评论 -
mysql 事件使用
mysql 事件使用原创 2022-11-29 15:22:14 · 2184 阅读 · 0 评论 -
navicat 导出excel数据不全问题
问题:navicat导出数据excel,右击选择表-->导出向导-->excel数据表-->下一步操作...数据库有2200条数据,每次导出只能导出1000条。网上也没找到资料。这边说两个解决办法1、先在查询页面查出数据再导出2、使用其他工具导出idea上database 支持导出,亲测有效DataGrip 未测试,和idea一家公司的,数据库可视化工具。应该也是支持的。...原创 2022-05-07 14:50:43 · 3962 阅读 · 2 评论 -
mysql row_number 笔记
mysql 8.0以后支持row_number具体语法row_number() over (PARTITION by column order by update_time desc)根据column分组,按时间倒序。这个时候我们一般都会取时间最近的一条数据,一般用于多条数据中排序选择数据PARTITION by column 如果column是null,则会返回1。下面是个例子:需求是:一个人可以发起多个多个流程,而我们只关心最新的一个流程是什么状态,所以我们用人员表做主表,关..原创 2021-10-25 18:04:09 · 185 阅读 · 0 评论 -
Alter table ADD INDEX 和Create INDEX 执行时间
测试Alter table 和Create index执行时间对同一张表同一个字段使用两种方式创建索引--表数据量400Wselect count(1) from t_car_test;--create index 7S CREATE INDEX Index_1 ON t_car_test (code1); --ALTER TABLE 7Salter table t_car_test add index Index_4(code1); 本次测试结论:400.原创 2021-08-12 10:42:59 · 5251 阅读 · 0 评论 -
mysql 合并两张表数据,按照业务主键去除重复的数据
一、背景介绍:我们有A、B两张表,两张表来源于两个系统,我们需要将两张表数据合并,并且重复的数据就取B表数据优先。二、分析:以往我写HIVE任务,通过rownum 来解决这种问题,但是后来发现我们mysql 不支持这个函数,(扩展:orcale是支持的。当然也可以自己编写储存过程实现这边需要的可以自行百度...)后来我想只能多次查询数据最后 UNION了,我们先看一张图。我们最后需要的数据就是绿色框出来的,这三部分数据,左右两边的数据可以写out join,但是实际的编写的时候发现m原创 2021-07-07 12:27:47 · 3848 阅读 · 2 评论 -
mysql 创建表一些注意点
时间字段使用datetime 类型,强制使用timestamp 类型 会存在到期问题1970-2038 `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间',原创 2021-03-17 15:47:10 · 192 阅读 · 0 评论 -
mysql 索引使用的总结
1、索引字段必须not null,null会使索引失效,因为索引的本质是将字段排序,分割范围后快速定位。2、尽量在辨识度高的字段上添加索引(类型字段不建议加索引,一个值超过总量的30% 索引就失效了)3、order by 字段也要加索引。优先级在where字段后面。例:where a=1 order by b 可以用联合索引 (a,b)4、使用联合索引,确定值要在范围值前面使用。例 where a=1 and b>0 and b<10索引失效场景:1. 如果条件中有o...原创 2021-01-11 10:46:26 · 213 阅读 · 1 评论 -
mysql 日常DDL语句
-----------------------新增删除列alter table table1 add column name varchar(20) COMMENT '姓名' not null default '';alter table table1 add column (name varchar(20) COMMENT '姓名' not null default '', age v...原创 2021-01-11 10:17:00 · 123 阅读 · 0 评论 -
Mysql 数据库笔记
1、limit 使用limit前查询语句为一个整体,如果limit前查询条件有索引,则索引生效,会按照索引检索出数据,再进行limit 操作。如果limit 前条件字段或者排序字段,没有索引则会有一个全表检索的过程。例:where a=1 limit 100; a有索引,则会执行索引,按照索引扫描出a=1的数据,在进行limit运算。如果a没有索引则会扫描全表,再进行limit运算。2、where条件中 or 的使用使用or运算,如果想索引不失效,那么参加or 运算的字段都必须是有索引的原创 2021-01-11 10:06:46 · 82 阅读 · 0 评论 -
mysql 常见函数、
MySQL查询替换掉 换行char(10)和回车符char(13): REPLACE(REPLACE(cm_model, CHAR(10),''), CHAR(13),'') as cm_model常用语数据导出时候替换掉文本字段中的换行和回车原创 2020-12-28 14:16:51 · 127 阅读 · 0 评论 -
MySql存储过程删除大量数据
当删除数据量过大事,为了防止删除过程锁表,影响正常程序。当删除数据超过100w,我们使用存储过程,分批删除数据。删除方法一:(删除条件不是自增主键时推荐)DROP PROCEDURE IF EXISTS SompDeleteProc1DELIMITER $$CREATE DEFINER = CURRENT_USER PROCEDURE SompDeleteProc1()BE...原创 2019-12-11 11:47:10 · 3507 阅读 · 1 评论 -
数据库优化——大数据量查询、更新
当查询或者更新数据量过大的时候,我们要考虑分批执行,每次执行50或者100.循环执行,好处:1、分批处理减少锁表时间 2、分批执行的时候,执行索引块,索引块粒度小,效率高。SQL 加 limit 1000 代码加处理 private void loopDalExeCute(String sqlId, Map<String, Object> param...原创 2019-12-11 11:49:35 · 398 阅读 · 0 评论 -
数据库拆分切割记录
因A库数据量太大,达到600G,现在将A库数据,按照路由分库规则,将部分数据迁移到B库。1、首先级联复制,将B库作为A库的从库。将数据同步复制到B库2、修改代码中数据源、路由规则等信息。如果数据源有权限设置,记的要将新的数据源赋权。3、发布代码,此时已经开始按照新的路由规则在分配数据。(此时会产生大量异常)4、断开级联,讲B库设置为读写。6、根据路由规则删除A、B库中的冗余数据...原创 2019-12-11 11:33:35 · 126 阅读 · 0 评论