
数据库
青灯古佛初照
竹杖芒鞋轻胜马
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据库存储过程的后端调用(SQLServer)
本项目中需要生成10位验收单编号,其中前六位为年+月,后四位为表中没有的最小码。则入参:Sell_ysqk(表名),ysdbh(列名),year+month:如202410(左固定值),4(右剩余长度)。在ServiceImpl中,put后要先调用完存储过程,出参已存储至map中,此时再get出参即可获取。项目中使用到了SQL Server的存储过程,其位于可编程性-存储过程,详细如下。如果是有出参的,或者参数类型不同。其内需要四个入参,为表名,列名,左固定值,剩下右边的长度。原创 2024-10-29 10:12:39 · 807 阅读 · 1 评论 -
SQL中的两种赋值方式#{},${},volatile与synchronized的区别
{param} :直接在sql语句中进行拼接,传入进去的值将直接传入到sql语句中,此种方式不安全,难以避免sql注入问题,如用户密码校验:password=${password} 如果输入的password是1 or1=1 , 1=1恒真跳过密码验证。所以需要保证线程对数据做出的更改对于其他获得改数据的线程是立即可见的。volatile关键字实现内存可见性,标记为volatile的变量修改时,其他缓存的旧值会被清除,重新读取,使得所有对volatile变量的读写都会直接读写主存。原创 2024-07-31 10:28:13 · 230 阅读 · 0 评论 -
Sql组合索引
示例:在建立abc联合索引之后,使用a,ab,abc的查询能够充分利用,如果使用查询ac,则实际上只用到了a的索引,如果根据bc来查询,则联合查询abc将毫无用到。如果是单列索引a,b,c则查询abc只会利用到其中一个效率最高的索引。相当于创建了a的单列索引,ab的联合索引和abc的联合索引,为最左前缀原则,以左边起点的连续索引都能匹配上。在where中如果使用到了or or的两个字段有一个没有索引则将全表扫描,故尽量避免。使用:注意联合索引建立顺序,将查询更频繁的列放在前面,原创 2024-08-01 14:21:17 · 305 阅读 · 0 评论 -
sql日期类型处理
AOF 记录每次写操作命令,并将其追加到aof文件末,即保存redis命令的命令日志文件,这样的方式安全性高。RDB是 一种快照式的持久化,每隔一段时间将内存的数据持久化到 磁盘中,这种方式恢复加载快 但两段快照之间的故障数据将会丢失。4.对于日期类型处理,datediff(日期一,日期二) 结果为日期一相对日期二的天数。某一天比上一天温度高的日期(id=2,4) 则可以对表内连接后用。(日期类型如day或者month,日期一,日期二) 结果为反向。1.sql中判断为等 为= 而非==原创 2024-07-31 10:17:10 · 567 阅读 · 0 评论 -
SQL乐观锁与悲观锁、共享锁与排他锁
乐观锁CAS只能保证单个变量的原子性,(可以把多个变量放入一个对象)悲观锁synchronized锁可以对整个代码块加锁,在竞争激烈时用synchronized锁有优势,因为乐观锁会频繁因数据变动更新失败,竞争不激烈时乐观锁不锁代码块更省资源。排他锁(写锁,独占锁):加锁后只允许加锁事务读取和修改,其他事务都不能修改(需要等待锁释放)(普通的查询可以,加任何锁的查询都不可以),加锁。行级锁:mysql锁定粒度最细的锁,针对当前的行加锁,消耗大,行级锁内分为共享锁和排他锁。2024.6.5日笔记。原创 2024-07-31 10:24:33 · 355 阅读 · 0 评论 -
SQL事务并发的四个问题
更新丢失:前三个问题都是因为一个事务作修改,另一个事务在读,更新丢失是因为两个事务都在修改,后修改完成的会将先修改完成的数据覆盖,导致先修改完成的数据丢失。幻读:一个事务按相同查询条件重新读取,发现其他事务插入或者删除了满足查询条件的新数据,即查询到的数据条数增多了,两次读取的数据总数不一样。脏读:一个事务正在对数据修改,另一个事务读取此数据去处理。脏读读取了未提交的事务。不可重复读:两次读读取数据时不一样。2024.6.6日笔记。原创 2024-07-31 10:25:29 · 316 阅读 · 0 评论 -
datetime和timestamp-时间戳的区别
实际开发中,用得最多的为DATETIME。在存取注册时间,商品发布时间等使用时间戳timestamp,其更便于计算。timestamp:4字节,存储空间小,表示的日期范围也小。表示当前时间到1970年1月1日0时0分0秒的秒数。选择:如果需求时间超过timestamp时间范围1970-2038,选择datatime。 如果想要记录数据变更时间,或者节省存储空间,使用timestamp。datetime:8字节,表示范围更大。原创 2024-08-19 10:04:54 · 362 阅读 · 0 评论 -
Oracle导入.dmp文件表空间不存在
其中的Default tablespace 默认表空间 Temporary tablespace临时表空间。登录系统用户system/sys创建记录的不存在的表空间,下面以“newdc”为例。上一步未删除用户则更改其默认表空间即可: admin用户 newdc新默认表空间。记录错误日志中不存在的表空间,清空导入失败的有损用户表数据,两钟方式。问题:导入时遇到“表newdc空间不存在” 部分数据导入失败。背景:在自己的本地库导入leader发来的.dmp文件。新建用户,分配表空间与权限。原创 2024-08-14 19:23:05 · 2043 阅读 · 0 评论 -
Redis缓存问题
缓存击穿:相对于雪崩,缓存击穿是指某一key过期了,恰好此时针对该key有大量的请求,这种key在缓存中没有而数据库中有的情况,其请求全都从数据库中查询,这种大量并发请求将数据库压垮。缓存雪崩:设置缓存时采用了相同的过期时间,导致缓存在某一时刻大量同时失效,大量查询同时落在了数据库上,造成缓存雪崩。缓存穿透:访问不存在的key,缓存不起作用。原创 2024-08-12 14:19:42 · 402 阅读 · 0 评论 -
Oracle数据库建库和分用户流程
今天的业务中复习了一下Oracle数据库的建立和从数据库中分出一个用户。原创 2024-08-06 18:36:48 · 386 阅读 · 0 评论