MySQL
文章平均质量分 58
韩某Hyman
Program is zero,but zero is start.
展开
-
如何保障 MySQL 和 Redis 的数据一致性?
实时一致性方案:采用“先写 MySQL,再删除 Redis”的策略,这种情况虽然也会存在两者不一致,但是需要满足的条件有点苛刻,所以是满足实时性条件下,能尽量满足一致性的最优解。最终一致性方案:采用“先写 MySQL,通过 Binlog,异步更新 Redis”,可以通过 Binlog,结合消息队列异步更新 Redis,是最终一致性的最优解。转载 2021-09-12 21:36:01 · 202 阅读 · 0 评论 -
专门写坑,越改越浪费资源?
Model : 仅当成 Eloquent class。Repository : 辅助 model,处理资料库逻辑,然后注入到 service。Service : 辅助 controller,处理业务逻辑,然后注入到 controller。Controller : 接收 HTTP request,调用其他 service。Presenter : 处理显示逻辑,然后注入到 view。原创 2022-09-24 22:00:00 · 213 阅读 · 0 评论 -
怎么解决服务端重复更新的问题?
核心还是锁,数据库锁或者是文件锁,redis 锁,还有就是队列,串行化更新。并发不大,mysql 悲观锁完全可以解决,并发比较大的话,就用 redis 分布式锁,并发特别大,建议两者并用。不过设计的时候需要考虑死锁的问题。原创 2019-10-28 19:45:40 · 1424 阅读 · 1 评论 -
统计数据到底怎么处理比较好?
实时查。维护亢余字段。建立一个统计表,定时去跑脚本更新数据,数据取的是这个统计表。es 数据统计。原创 2020-10-31 18:03:59 · 867 阅读 · 0 评论 -
MySQL创建高性能索引
mysq索引的基础和类型概念、理解:MySQL官方对索引的定义:索引(index)是帮助mysql高效获取数据的数据结构。所以索引的本质是一种数据结构。索引类似于书籍的目录,要想找到一本书的某个特定主题,需要先查找书的目录,定位对应的页码。存储引擎使用类似的方式进行数据查询,先去索引当中找到对应的值,然后根据匹配的索引找到对应的数据行。数据库系统在存储数据之外,还维护着满足特定查找算法的数据结构。这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种原创 2017-03-23 21:26:25 · 10287 阅读 · 0 评论 -
MySQL默认值NULL、空值、Empty String的区别,如何选择?
工作一年左右了,发现其实工作中除了需要实现业务代码外,更多的是与数据库打交道。最近因为项目需要,我也逐渐参与进入数据库的设计,从而发现了很多之前没有过多注意的问题。回想这一年来,写博客的次数屈指可数,现在想重新拾起,所以打算从数据库方面入手,先总结一个比较简单但非常常用的知识点——mysql中字段默认值的问题。我们可以看到,默认值的设置主要分为三种:空值,空白,即什么都不填,等同于...原创 2018-07-30 11:57:54 · 12586 阅读 · 1 评论 -
MySQL查询默认排序与order by排序
最近发现一个平时经常忽略的问题,就是MySQL查询出来的结果的排序问题。之前一直认为,如果在sql语句中没有加特定的order by条件,那么查询出来的数据就应该是按照主键(即插入顺序)排序的。但是,今天在项目中拿数据时发现并没有按照“我以为”的方式排序,就研究了下,发现按照什么方式排序与所查询的字段、索引等都有关系的。因为项目中基本都使用InnoDB引擎,所以就不考虑其他引擎了,自己测试...原创 2018-08-05 18:41:46 · 16192 阅读 · 4 评论 -
MySQL 规约(转自阿里巴巴开发手册)
最近一直在反思,感觉自身在规范化方面还是做得不好,最近也在看相关资料,努力充充电。一、建表规约 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 表示否),此规则同样适用于 odps 建表。 说明:任何字段如果为非负数,必须是 unsigned。 【强制】表名、字段名必须使用小写字母或数字;禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考转载 2020-10-11 20:20:11 · 349 阅读 · 0 评论