数据库(mysql、oracle)
文章平均质量分 50
多来哈米
或悲极或大喜,总要留给回忆!
展开
-
DDM分库分表,批量更新性能调优
场景:全量更新六千万的数据。原创 2024-08-27 10:56:16 · 166 阅读 · 1 评论 -
数据库oracle/mysql多条重复数据,取最新的
数据库oracle/mysql多条重复数据,取最新的原创 2024-05-14 17:15:27 · 1564 阅读 · 0 评论 -
DuplicateKeyException和DataIntegrityViolationException
SQLException抛出来的code生产环境不一样,正常应该抛1062(唯一键冲突)原本应该报:DuplicateKeyException,生产环境却抛。正常是走141行,生产走的146行的。try catch中加上。原创 2024-02-26 14:01:42 · 637 阅读 · 0 评论 -
druid 1.2.8线程池validation-query未起作用??discard long time none received connection
最近项目生产环境老是报错:discard long time none received connection(感觉可能是跨机房,连接池连接失效了,然后validation-query恰巧没生效)原创 2023-06-28 18:09:11 · 1768 阅读 · 0 评论 -
海量数据同步到DDM(oracle到mysql)
3、DDM数据库,过千万后并发插入,性能就很差:采用。2、数据可能存在重复,批量插入mysql使用。性能,所以通过主键ID实现分页;插入(最多不超过两个线程-实测)1、由于oracle的。原创 2023-05-16 14:51:09 · 470 阅读 · 0 评论 -
华为DDM分库分表注意事项
解决方案:请先使用check table语句对表结构做一致性检查,并配合alter table等语句对表结构做修正。如果无法进行DDL修正(如主键、唯一键因为数据原因无法修改),请联系运维人员处理。primary key好像能保证全局唯一。解决方案:增加主键。原创 2023-02-02 16:08:10 · 560 阅读 · 0 评论 -
服务器MySQL数据库拷贝(附Navicat复制数据库)
文章来源:mysql拷贝数据库1、拷贝数据库(原理导出表及数据到sql文件)mysqldump -u root -p数据库密码 iot-pstation > /tmp/iot-pstation.sql2、登录数据库并创建新数据库mysql -u root -pshapp123456CREATE database `iot-pstation-bak` default charset=utf8;3、导入数据库mysql -u root -pshapp123456 io原创 2021-08-04 17:30:21 · 691 阅读 · 0 评论 -
mysql简单的定时任务
场景:产品表,每天定时更新排序时间,用于首页每日展示不同内容;方案:MySQL定时任务event-- 查看开启状态SHOW VARIABLES LIKE 'event_scheduler';-- 创建事件(每天凌晨1点,更新sql_date为过去十天随机某个时间点)create event hgIndexON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HO.原创 2021-05-10 11:05:26 · 346 阅读 · 0 评论 -
mysql原生sql,字符串、0和false为同一种东西?不等于会过滤null?
sql中:0=false,这个无异议;but:字符串=false;字符串=0……这就黑人问号了简单粗暴上图(productName是字符串)status是int原创 2020-10-29 18:39:51 · 891 阅读 · 1 评论 -
MySQL跨库拷贝,查看存储容量,delete后释放表空间
一、拷贝数据库(工具:Navicat)传送门二、查看数据库大小容量1、数据库总量大小use information_schema; select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;2、某个数据库存储量大小use information_schema;select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as原创 2020-07-20 13:23:54 · 887 阅读 · 1 评论 -
spring @Transactional service一个方法,事务什么时候提交的?探索事务传播机制
原文地址事物详解要点:1、事务在开启他的那个方法结束后就提交;2、在这个事务里面添加的数据,在这个事务本身里面是能够看到的,只是其他事务不能看到这个数据;我当时疑问的是第二点,为什么我没提交事物,查询的确实最新数据。大佬测试的详尽文章,推荐阅读探索(忽略我自己记录,下面的可以不用看):1、@Transactional方法,调用普通方法;测试:主方法抛异常,...原创 2020-01-19 09:50:44 · 10250 阅读 · 1 评论 -
(实用技能)mysql三目运算实现if,else的效果,避免不必要的查询
mysql的if函数;技能一:子查询有count函数,查出来的结果变成了blob类型的;实用函数二:mysql通过标题检索关键词;技能三:数据存在则更新,没有则插入(on DUPLICATE key update)原创 2017-01-19 15:07:00 · 33866 阅读 · 5 评论 -
mysql生成随机时间
update portal_product set update_date=DATE_ADD('2017-8-1 00:00:00', INTERVAL FLOOR(1 + (RAND() * 1080000)) SECOND );感谢思路原创 2017-08-21 11:10:49 · 7189 阅读 · 0 评论 -
sql优化——减小入口数据量
举例如下sql,假如portal_product数据量超大,这样连接查询um_user_info:2W条;portal_product:100W条;笛卡尔积:2W*100WSELECT pp.id, pp.cover, uui.user_id userId, uui.user_name userName FROM portal_product...原创 2018-02-08 18:44:20 · 553 阅读 · 0 评论 -
mysql报错Error Code: 1022. Can't write; duplicate key in table `xxx`
说明:此错误是外键名称重复了查找重复外键名称,哪里被用到了,sql如下:select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='重复的外键名称'如果没问题,则重新命名即可感谢原创 2017-09-05 15:10:32 · 12790 阅读 · 0 评论 -
ETL数据抽取(将远程或生产数据库,同步到本地 || 跨平台数据库拷贝)
使用场景:将远程或生产数据库,同步到本地使用简介软件【下载】原创 2015-04-29 17:14:50 · 1187 阅读 · 0 评论 -
mysql针对查询结果,批量插入不同的uuid
SELECT REPLACE (UUID(), '-', '') id,id extend_value FROM `portal_product`REPLACE (UUID(), '-', '')这种,批量生成的uuid都是一样的, 直接用uuid()即可生成不同uuid, 然后后期再批量处理替换id中的“-”号,即可SELECT uuid() id,pp.name ...原创 2017-08-03 18:43:02 · 14780 阅读 · 8 评论 -
阿里云数据库MySQL中Excel数据导入
1、Excel格式如下(对应数据库字段)2、将Excel另存为.csv格式文档(如下)3、导入云数据库mysql至此就OjbK!了原创 2018-05-10 11:22:14 · 1916 阅读 · 1 评论 -
mysql日期比较或相差天数、生成指定范围内随机时间日期
1、日期比较(着重相差秒数,如:验证码有效时间)create_date字段比较:TIME_TO_SEC(TIMEDIFF(NOW(), create_date)) < 60要点:1、比较两时间差值:TIMEDIFF(dt1, dt2);更多详见文章2、返回 time 参数,转换成秒:TIME_TO_SEC(time);更多详见文章2、日期比较,相差天数 2.1...原创 2018-05-14 15:28:36 · 3990 阅读 · 0 评论 -
数据库中同一张表进行count计数统计,并更新当前这张表的计数字段
因为平时实用场景中遇到过几次,每次都卡壳纠结,期初用方案一,然后百度实战出方案二。方案一:在java中循环一条一条记录执行(慢,还要写代码)——忽略。需要在一张表中,统计电话号码出现的次数,并更新计数。将手机号、证件号脱敏(利用substring函数)sql如下,组合一下,然后连接查询并更新数据。一句sql完成update(实用,推荐)原创 2018-10-31 15:49:22 · 4699 阅读 · 2 评论 -
mysql获取当前表的自增值,以及修改初始自增值
一、查询表的自增值SELECT Auto_increment FROM information_schema.TABLES WHERE Table_Schema= 'database' AND table_name= 'tableName'说明:'database' 表示数据库名 。 'tableName' 表示表名。(数据库名和表名需要引号引起来!)二、修改当前表的自...转载 2018-11-07 10:43:30 · 6915 阅读 · 1 评论 -
MyBatis中查询mysql中类型为tinyint(1)字段的:1、0,读取变成了true、false(MySQL类型tinyint(1)的奇怪问题)
1、mysql字段send_status,如下:`send_status` tinyint(1) DEFAULT NULL COMMENT '送货状态(null:待送货,0:送货中,1:已完结,2:已送货)'2、but奇怪的问题来了:查出来的的0、1状态,直接变成了true、false????????一万个问号一插究竟:boolean在MySQL里的类型为tinyin...原创 2019-03-26 11:02:32 · 3933 阅读 · 0 评论 -
MyBatis动态修改某字段值(利用$和#的区别、封装实体方式)
场景:动态传入字段名,并修改值;方案一:利用$和#的区别核心SQL:update table_name set ${column_name} = #{column_value};延展:如果多个字段动态修改,则封装list<map>循环,此处知识点传送门点击前往(思路参考);缺点:$会存在SQL注入的问题;方案二:封装实体类(推荐 无sql注入问题)借...原创 2019-04-09 10:03:37 · 3462 阅读 · 2 评论 -
sql实现分组并排序
今天遇到一个sql,分组求和过后排序,就想一句sql实现开始是这么想的:select re.c, re.d from (select c, max(d) as d from a group by c) re order by re.d desc 总感觉重复啰嗦,就百度了一下下(以为要用having,结果就下面简单一句搞定): select c,max(d) fr原创 2015-01-15 09:55:51 · 13582 阅读 · 0 评论 -
数据库查看所有外键,验证某外键是否已经存在(mysql)
说明:FK_PRODUCT_ID代表外键名称,验证是否已存在SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME='FK_PRODUCT_ID'感谢思路原创 2017-09-16 11:05:38 · 13383 阅读 · 0 评论 -
group by分组内排序,取其中一条
--获取最新时间的某条数据(下面这个是错的,玛德浪费一天,看原文吧)SELECTid,newsID,comment,MAX(theTime) FROMcomments GROUPBYnewsID感谢原文:http://blog.csdn.net/shellching/article/details/8292338借鉴原文的方法...转载 2017-02-22 18:11:37 · 9988 阅读 · 0 评论 -
mysql取出大于3的赞评论(取出热门评论),然后其余的按时间先后顺序
sql详解(详见标红部分)赞数大于3,就按照赞的数量进行排序赞数小于3的,排序都为0(平级),然后就根据创建时间排序select * from topic_video_comment where relate_id='14ccac97b1154c6f93351f3f9a6ebf56' order by case when zan_count > 3 then za原创 2016-11-16 09:57:26 · 1217 阅读 · 0 评论 -
left join 关联相同两张表,并将关联表的分别两条数据,整体合并为一条
left join 关联相同两张表,并将关联表的分别两条数据,整体合并为一条SELECT di.id, di.description, vi.extend_value videoUrl, ti.extend_value title, di.create_date FROM designer_issue di left join design原创 2016-09-20 15:32:39 · 7876 阅读 · 0 评论 -
Oracle简单的用户表
--create user hgg/hgg;--grant resource,connect to hgg;--hgg/hgg/*==============================================================*//* t_userinfo 用户表 *原创 2014-05-10 21:41:11 · 866 阅读 · 0 评论 -
sql server删除外键约束
x先找出约束名字然后删除它我给个例子--测试环境--主表create table test1(id int primary key not null,value int)insert test1 select 1,2go--从表create table test2(id int references test1(id),value int)go-转载 2014-05-25 16:23:39 · 2127 阅读 · 4 评论 -
oracle毫秒转时间
今天遇到数据库存的日期字符串是这种造型:1.3377024E12,本想用程序后台转换过后再展示在前台。仔细想了一下,改数据库来得更快,就搜索资料:实现如下:SELECT TO_CHAR(to_number(1.3377024E12) / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-D原创 2014-12-26 14:47:10 · 1710 阅读 · 0 评论 -
oracle查询表中某一特定类型的数据特别慢,也没找到原因
今天查一张表的时候,查询表中某一特定类型的数据特别慢,但是查询全表特别快,也没找到原因,百度了一下下,可能感觉(很小的几率)是下面这个四、Oracle表段中的高水位线HWM在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HW原创 2015-01-15 16:18:31 · 1905 阅读 · 0 评论 -
oracle导入导出(用得比较多)
1.创建目录directory(角色system/sys)create directory hello_file as 'd:\dupmfile';--查看所有已创建的directory--select * from dba_directories;--drop directory删除路径用的.--drop directory exp_dir;2.创建表空间(可以使用其默认原创 2015-02-06 14:19:29 · 1160 阅读 · 0 评论 -
DedeAMPZ通过界面连接数据库操作(dos查看)
步骤:1、点开始菜单--运行--输入:cmd 回车;2、进入DEDE安装的这个目录,例如:cd D:\DedeAMPZ\Program\MySQL5\bin 因为这个目录才有mysql命令使用;3、输入 mysql -u root -p4、输入你安装DedeAMPZ时候 root 的密码,默认是:1234565、进入Mysql控制台,提示符为:mysql6、在mysql控制原创 2015-12-27 18:38:45 · 3799 阅读 · 0 评论 -
powerdesigner反向生成pdm
1、新建pdm,选择数据库版本2、配置数据源3、连接数据库并生成pdm欧拉……原创 2015-03-31 14:51:57 · 1120 阅读 · 0 评论 -
oracle分组后得到主键
以scott/tiger中emp表为例子:--查询emp中相同部门工资最高的select * from (--通过t.deptno分组,并按工资排序select t.*, row_number() over(partition by t.deptno order by t.sal desc) as rowindex from emp t ) where原创 2015-03-19 17:49:14 · 1369 阅读 · 0 评论 -
mysql改变表的编码字符集,将utf8改为utf8mb4
主要功能,utf8mb4支持四字节--查看建表语句,默认编码utf8show create table topic_video_comment ;--查看表中每个字段的字符集show full fields from topic_video_comment;--改变表的编码,为utf8mb4alter table `topic_video_comment` co原创 2016-11-13 19:14:46 · 13740 阅读 · 0 评论 -
windows修改mysql字符集,支持ios emoji标签
windows为my.ini或者my-default.ini(linux配置文件my.cnf,在/etc目录)找到后请在以下三部分里添加如下内容:[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client原创 2016-12-20 16:44:05 · 1198 阅读 · 0 评论 -
mysql查看当前运行中或挂起的sql
查看执行、挂起的sql列表:show processlist杀死进程:kill id原创 2017-09-07 17:14:23 · 4862 阅读 · 0 评论 -
mybatis 查询参数为集合list、数组、map的情况
【记录一下,list情况】<select id="getEmployeesListParams" resultType="Employees"> select * from EMPLOYEES e where e.EMPLOYEE_ID in <foreach collection="employe...转载 2017-02-22 17:50:28 · 2137 阅读 · 0 评论