随笔分类 -  中间件-数据库

摘要:nullif(A,B)表示A和B是否相等,如果相等则返回null,否则返回A。 可以用于判断两值是否相等,或者除零错误。 a/nullif(b,0) 若b为0,则返回null 阅读全文
posted @ 2021-06-08 14:07 RookieCoderAdu 阅读(470) 评论(0) 推荐(0)
摘要:USE [MySchool] GO IF COL_LENGTH('Student','Score') IS NULL BEGIN ALTER TABLE Student ADD Score DOUBLE END GO COL_LENGTH判断表中是否含有列,比如此处判断Student表中是否含有Sc 阅读全文
posted @ 2021-06-03 16:03 RookieCoderAdu 阅读(828) 评论(0) 推荐(0)
摘要:我在虚拟机上安装SQL server时遇到一个问题。 首先打开 SQL SERVER配置管理器,也就是一个红色小箱子图标的那个 1.找到 SQL SERVER网络配置,选择下面SQLEXPRESS的协议,将TCP/IP 打开 2.找到 SQL SERVER服务,将 SQL SERVER(SQLEXP 阅读全文
posted @ 2021-05-27 11:37 RookieCoderAdu 阅读(242) 评论(0) 推荐(0)
摘要:游标相当于数据库的指针。当我们查询到数据集的时候,可以使用游标来做一些遍历操作。 因为游标可以 遍历我们查询到的结果集,而且一次指向一行数据,方便我们逐行操作数据。 而且游标数据可以重复使用。他可以临时保存当前行的数据 但是它有一定的缺陷。因为他会将我们查询到的结果放置到内存,那么数据量大的时候会造 阅读全文
posted @ 2021-05-19 09:50 RookieCoderAdu 阅读(1080) 评论(0) 推荐(0)
摘要:RabbitMQ默认是自动确认,也就是消息推送给消费者之后,马上确认并销毁。但是假如消费消息的过程中发生了异常,由于消息已经销毁,这样就会造成消息的丢失。 除了自动确认之外,还有三种确认方式:手工确认、批量确认、接受拒绝。 一、手动确认。 也就是关闭了自动确认 channel.basicConsum 阅读全文
posted @ 2021-05-17 18:29 RookieCoderAdu 阅读(756) 评论(0) 推荐(1)
摘要:【C#代码方式】 一般添加值之后,不设置过期时间的话,ttl某个键会显示-1,表示此时并没有设置过期时间 当设置了过期时间之后,则会显示剩余过期秒数 设置过期时间的做法 #region 设置过期时间 //设置多少秒 client.Set<string>("name", "Adu", TimeSpan 阅读全文
posted @ 2021-05-15 00:56 RookieCoderAdu 阅读(717) 评论(0) 推荐(0)
摘要:首先需要添加引用ServiceStack.Redis using(IRedisClient client=new RedisClient("127.0.0.1",6379,"123456",2)) { #region 单个增加与读取 //删除当前数据所有key client.FlushDb(); C 阅读全文
posted @ 2021-05-14 23:36 RookieCoderAdu 阅读(654) 评论(0) 推荐(0)
摘要:Redis设置密码的方法有两种 第一种、直接修改redis.conf 在配置文件中 找到 # requirepass foobared 这里默认是注释掉的,表示不使用密码,将#去掉,并将foobared改为自己想要修改的密码,需要重启redis。 第二种、直接使用命令 使用以下命令 config s 阅读全文
posted @ 2021-05-14 21:30 RookieCoderAdu 阅读(799) 评论(0) 推荐(0)
摘要:以往的sql优化一般是根据经验,但是遇上复杂的sql,以往经验不起作用的时候怎么办?这时候,就有性能分析工具来辅助我们分析Sql中存在的问题。 打开方法: Sql server 2012数据库 -》 工具 -》Sql Server Profiler 设置好数据库的地址和账号密码 按照上诉步骤进行设置 阅读全文
posted @ 2021-05-13 00:20 RookieCoderAdu 阅读(363) 评论(0) 推荐(0)
摘要:【大致流程】 生产者Producer将消息发送给RabbitMQ Server/Broker里的交换机Exchange,交换机绑定有队列Queue,生产者在传递的过程中会携带路由键Routing_Key, 交换机根据路由键和指定算法找到对应的队列,将信息传递给消费者Consumer Producer 阅读全文
posted @ 2021-02-24 17:48 RookieCoderAdu 阅读(177) 评论(0) 推荐(0)
摘要:1.生产环境网络波动导致丢包 2.使用Confirm模式,接收端接收失败发送消息给生产者,生产者接收失败或未作处理 3.消息发送到exchange,但是queue和路由没有绑定 4.消息未做持久化处理,或者持久化不完全(只持久化Message,未持久化Queue,Exchange) 5.未做消息队列 阅读全文
posted @ 2021-02-22 11:25 RookieCoderAdu 阅读(399) 评论(0) 推荐(0)
摘要:一、缓存雪崩 原因:Redis服务崩溃、缓存同一时间同时过期等 解决方法: 1.给设置的过期时间加一个随机数,避免同一时间删除 2. 事前:建立redis集群 事中:本地缓存+限流 事后:重复加载数据 二、缓存穿透 原因:缓存服务器上面不存在的数据,到数据库中依然不存在,一直返回空值 解决方法: 1 阅读全文
posted @ 2021-02-18 16:29 RookieCoderAdu 阅读(224) 评论(0) 推荐(0)
摘要:可以采用三种方法: 定时删除、定期删除、惰性删除 一、定时删除 写一个定时器,将key的过期时间到达时,立刻将键删除 优点:节约内存 缺点:增加CPU压力,影响redis服务器响应时间和吞吐量 二、定期删除 activeExpireCycle()函数对每个expires(数据库)逐一进行检测对每个数 阅读全文
posted @ 2021-02-18 15:22 RookieCoderAdu 阅读(734) 评论(0) 推荐(0)
摘要:使用TTL 指令可以查看key的过期时间 包含三种状态; 当key不存在或者已经过期的时候,返回-2 当key存在但是没有设置过期时间的时候返回-1 当设置了过期时间的时候返回过期时间,以秒为单位 # 不存在的 key redis> FLUSHDB OK redis> TTL key (intege 阅读全文
posted @ 2021-02-18 14:15 RookieCoderAdu 阅读(1069) 评论(0) 推荐(0)
摘要:truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。 truncate只能作用于表;delete,drop可作用于表、视图等。 truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。 truncat 阅读全文
posted @ 2021-02-18 11:54 RookieCoderAdu 阅读(128) 评论(0) 推荐(0)
摘要:此方法只适用于对海量数据查询的优化,对于数据量较少的查询不具有参考性 一、尽量避免全表扫描,使用索引 1.在常用字段上面建立索引,方便查找 2.避免null值判断。eg: where xx is null。 改进:可以设置默认值代替null 3.避免使用不等于操作符,如!=,<> 4.避免使用or。 阅读全文
posted @ 2021-02-18 11:48 RookieCoderAdu 阅读(567) 评论(0) 推荐(0)
摘要:【启动】 1.确保开启了redis服务 2。进入redis安装根目录,使用命令 redis-cli 【设置密码】 config set requirepass "123456" //设置密码 auth 123456 //进入系统config get requirepass 【修改redis端口】 在 阅读全文
posted @ 2021-01-24 23:07 RookieCoderAdu 阅读(451) 评论(0) 推荐(0)
摘要:语法如下: SELECT STUFF((select ','+c.MR_RolName from 查询语句 FOR XML PATH('')),1,1,''); 解释如下 1.STUFF函数。表示截取拼接函数 第一个参数表示原字符串 第二个参数表示从哪个坐标开始,参数从1开始 第三个参数表示截取几位 阅读全文
posted @ 2020-11-17 11:43 RookieCoderAdu 阅读(3120) 评论(0) 推荐(1)
摘要:获取某一天的时间,用法是使用cast ...as date,将字符串转化成日期 比如说我想获取上个月25号的日期: cast(convert(varchar(20),Year(dateadd(month,-1,@datetime))) +'-'+convert(varchar(20),Month(d 阅读全文
posted @ 2020-11-11 13:55 RookieCoderAdu 阅读(1381) 评论(0) 推荐(0)
摘要:在一般的存储过程中,只需要输出查询的数据即可,那么直接在最后使用select语句即可。 但是假如我要输出多个变量怎么办? 那么直接在声明存储过程的时候使用output关键字即可, 如下图: CREATE PROCEDURE [dbo].SP_01 @month varchar(10), @day v 阅读全文
posted @ 2020-11-11 12:05 RookieCoderAdu 阅读(3572) 评论(0) 推荐(0)