摘要:
目标:生成复杂对象的QueryString,比如 new { Field1 = 1, Field2 = new { Field3 = "2", Field4 = new[] { new {Field5 = "4"}, new {Field5 = "5"} } }, Field6 = new[] { 阅读全文
摘要:
public class LockTest { private IDatabase _database; private readonly Random _random = new Random(); private int _num = 0; [SetUp] public void SetUp() 阅读全文
摘要:
目前使用的场景: 1.运营大量发券,推送app消息提醒,由于消费端是多线程BasicAck消费模式,因此大量消息积压 2.数据变更记录,记录数据库所有记录的变化历史,推送到es系统 此类场景的特点几乎所有的消息处理逻辑一样,如app消息需要把手机号转换成推送标识,数据变更需要根据配置过滤部分信息,这 阅读全文
摘要:
使用merge语法实现新增or更新 首先创建表 CREATE TABLE Test.dbo.Increments ( Prefix varchar(50) NOT NULL, [MaxNum ] bigint NOT NULL, CONSTRAINT PK_Increments_Prefix PRI 阅读全文
摘要:
测试如图,Core_Users的PhoneNumber可为空,存在索引,记录数1500000+ 增加is not null,查询计划消耗增加了一个0%的筛选器消耗,IO消耗如下一模一样 如果是IS NOT NULL引起的,我觉得这个bug不能算在ef core上,应该算在sql server采用的执 阅读全文
摘要:
需求1:订单号要求唯一、长度不太长、自增、但不能通过早上订单号和晚上订单号相减推算出平台大概一天的单量 需求2:要求生成10w张优惠券,要求券码唯一、不能太长,不能轻易猜测出其他券码 根据这些需求提供一个简单的数据库发号的sql来满足上面的需求,介绍如下 Increments表设计两个字段,Pref 阅读全文
摘要:
Timestamp对于EF实体的类型是byte[] class Program { static void Main(string[] args) { using (var context = new DbContext()) { var val = BitConverter.GetBytes(0x 阅读全文
摘要:
假设一个需求,在某个预告活动中准备了10w个红包,100w人在某个时间点去开抢,每人只能抢1次,如何保证性能和准确性,下面我给出我的一个设计方案,抛砖引玉 1. 分析瓶颈 查询用户是否已参与过活动 获取一个可抢的红包,保证多个人不能获取到同一个红包 建立红包与用户的关系 2. 设计数据结构解决瓶颈问 阅读全文
摘要:
上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以我们可以搜索GDI+mono来看有无解决方案。 通过搜索引擎,我们可以找到通过安装GDI+兼容API 阅读全文
摘要:
上一篇我们环境已经准备完成,此时可以部署了,我们就以dtcms作为例子,http://bbs.dtcms.net/forum.php?mod=viewthread&tid=2420&extra=page%3D1,到这里下载源码,里面有文档和数据库脚本 用这个项目做例子主要是帮朋友研究的就是这个产品, 阅读全文