【数据库】
好好生活_
这个作者很懒,什么都没留下…
展开
-
【MySQL】表字段字符集不同导致的索引失效问题
问题背景在一次开发任务中,同事跟我说他开发的一个列表分页查询请求要耗时10多分钟,查询SQL是新建的一个表关联了两张主表,主表数据量较大。但正常情况下如果有索引的话,查询也不会慢,这显然是有问题的。问题原因通过排查,得知问题原因在于新建的表字符集用的是utf8mb4,而之前的两张主表的字符集设置的是utf8,SQL...原创 2020-04-26 17:28:11 · 947 阅读 · 1 评论 -
【数据库】MySQL索引,你了解多少?
【引言】索引,是我们在优化查询sql的场景中最先想到的解决方案。什么情况下需要建立索引,建立什么类型的索引,在什么字段上建立索引,这都是我们需要考虑的问题。对于上述问题,如果对索引的相关理论有很清晰的认识,就很容易处理了;反之,则只能是丈二和尚摸不着头脑,成不成功都靠运气。下面就总结一些关于索引的知识。索引是什么索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据...原创 2019-11-28 23:10:45 · 431 阅读 · 0 评论 -
【数据库】事务隔离级别
【引言】在数据库操作中,为了有效保证并发读取数据的正确性,提出了事务隔离级别的概念,其中包括Read Uncommitted(读未提交),Read Committed(读提交),Repeatable Read(可重复读)和 Serializable(序列化)四种隔离级别。【问题由来】数据库是被大家共享访问的,那么在数据库操作中很可能出现以下几种不确定的情况:更新丢失(Lost Upda...原创 2019-11-26 23:00:48 · 255 阅读 · 0 评论 -
【数据库】SQL优化该如何去做?
【引言】在我的印象中,只要是系统框架比较旧的项目中,都少不了一大长串的SQL,粘出来,可以长达两百多行。而这些看起来很厉害的SQL,随着系统数据量的增大,也成为了拖垮系统的真正杀手。遇到这样的项目,SQL优化是必不可少的,下面就总结一些优化技巧,也是在做SQL优化中通用的一些技巧。【优化技巧】1. 负向条件查询不能使用索引,not in/not exists都不是好习惯。比如下面的SQL...原创 2019-11-25 23:03:39 · 377 阅读 · 0 评论 -
【redis】分布式锁的基本实现
【问题背景】在分布式场景下,出现了拿到的主键id相同的情况,从而导致物流单单号重复,新建失败。物流单号生成的规则是:固定字符(“**) + 发货站点id + yyyyMMdd形式日期 + 自增id。所以,利用redis,分布式锁机制,保证生成的物流单号不重复。【相关命令】incr:将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再...原创 2018-08-22 23:01:20 · 310 阅读 · 1 评论 -
【redis】常用命令总结
开发一个新需求,需要将redis缓存从原有的以公司为key替换为以个人为key,在这过程中,通过命令行对redis进行操作,之前没有实战,正好是个积累学习的过程。一 . Connection (连接)AUTH (Auth password):通过设置配置文件中 requirepass 项的值(使用命令 CONFIG SET requirepass password ),可以使用 密码来...原创 2018-08-21 17:19:06 · 13048 阅读 · 1 评论 -
SQL Union实现子母单列表展示
【需求分析】系统接入ERP,订单会根据商品的发货仓进行拆单,所以订单之间不再是单独的关系,而有了子单母单的概念。在做最小的改动的情况下,数据库的改造是在订单表上增加了parent_order_sn字段,所谓的母订单号,如果订单A被拆单,则A应该是母订单,订单状态是‘已拆单’。通过parent_order_sn=‘A订单号’去查询,可以查到两条子订单记录。、【问题再现】之前我一直在负责和ERP...原创 2019-01-12 17:06:23 · 1763 阅读 · 2 评论