KittyDaddy's blog KittyDaddy's blog
首页
  • 学习笔记

    • 《Java基础》
    • 《常用设计模式》
    • 《MYSQL》
    • 《GO语言》
    • 《Spring源码解读》
  • 微服务解决方案

    • 锁的演化
    • 简单限流方案
    • 海量数据切分
  • 中间件

    • Nginx
    • MQ
    • Redis
    • Keepalived
  • 面试记
  • 杂文
  • 开源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

老猫

万物皆系统
首页
  • 学习笔记

    • 《Java基础》
    • 《常用设计模式》
    • 《MYSQL》
    • 《GO语言》
    • 《Spring源码解读》
  • 微服务解决方案

    • 锁的演化
    • 简单限流方案
    • 海量数据切分
  • 中间件

    • Nginx
    • MQ
    • Redis
    • Keepalived
  • 面试记
  • 杂文
  • 开源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
全部标签
上头 兴趣爱好 分布式定时任务 CDN流量 mysql索引 API设计 策略模式 绘图工具 支付解决方案 mysql mysql设计规范 小帅面经 Java并发锁 程序员思维方式 认知 缓存 程序员那些事儿 适配器模式 小猫日常踩坑 程序员基本素养 设计模式 创建型设计模式 软件设计原则 ThreadLocal 单一职责原则 uml 缓存穿透 幂等设计 spring 面试经历 生活体验 线程池 事务优化 面经 热点账户 工厂模式 责任链模式 Java基础 基础类型 对象比较 感想 规划 架构 限流 注解 clib和jdk动态代理 消息队列 amqp rabbitMq 安装教程 疫情 解封 GO开发 权限系统 whale系统 思考 感悟 分布式锁 Java锁 分布式系统解决方案 zookeeper锁 Java锁的种类 锁的解决方案 数据切分 什么是锁 Redis Redis进阶 Nginx Nginx缓存控制 Nginx教程 Nginx跨域 Nginx负载均衡配置 Nginx负载均衡 Nginx防盗链 Java设计模式 工厂方法模式 简单工厂模式 Nginx静态文件配置 Nginx日志切割 Nginx配置 Nginx概念 Nginx安装 Centos7 单例模式 java 反射 mysql死锁 泛型

遵循这些MySQL设计规范,再也没被组长喷过

老猫 2024-04-06 《MYSQL》笔记 mysqlmysql设计规范

# 故事

会议室里,小猫挠着头,心里暗暗叫苦着“哎,这代码都撸完了呀,改起来成本也太大了。”

原来就在刚才,组长找到了小猫,说代码review过程中发现有些数据表模型设计得不合理,要求小猫改掉。小猫大概是设计了一个配置表,为了省事儿,小猫直接把相关的配置设计成了text类型的存储形式。

关于这种业务场景下使用text文本类型存储,组长指出了以下缺点:

  1. 在内存中处理Text字段时,由于需要处理大量数据,可能会导致内存使用过度,影响数据库性能。
  2. Text字段无法创建索引,这会导致数据库在执行查询时无法利用索引来加速搜索。虽然可以通过全文索引来改善搜索性能,但是却会有诸多限制,例如只能用于InnoDB引擎,并且索引只能建立在不超过1000字节的前缀上。
  3. 目前刚设计的时候就用text类型,后期随着数据量的增长以及业务需求的变化,可能就意味着要将text类型继续扩大变成,LongText或MediumText类型,这样的转换既费时又可能需要额外的存储空间。

“组长说的也有道理,但是为什么现在才指出来,当时方案模型评审的时候咋提呢,哎,醉了醉了,现在业务逻辑都按照现有方案开发完了,才提出来.....”

“改?要重写逻辑,不改?万一今后真的出现上面组长说的这些问题,不得被喷死......”

彷徨过后,小猫终于下定了决心,改了吧,长痛不如短痛...反正如果不改的话,受罪的还是自己。于是加班是少不了了......

阅读全文

上一页

1

下一页

全部标签
上头 兴趣爱好 分布式定时任务 CDN流量 mysql索引 API设计 策略模式 绘图工具 支付解决方案 mysql mysql设计规范 小帅面经 Java并发锁 程序员思维方式 认知 缓存 程序员那些事儿 适配器模式 小猫日常踩坑 程序员基本素养 设计模式 创建型设计模式 软件设计原则 ThreadLocal 单一职责原则 uml 缓存穿透 幂等设计 spring 面试经历 生活体验 线程池 事务优化 面经 热点账户 工厂模式 责任链模式 Java基础 基础类型 对象比较 感想 规划 架构 限流 注解 clib和jdk动态代理 消息队列 amqp rabbitMq 安装教程 疫情 解封 GO开发 权限系统 whale系统 思考 感悟 分布式锁 Java锁 分布式系统解决方案 zookeeper锁 Java锁的种类 锁的解决方案 数据切分 什么是锁 Redis Redis进阶 Nginx Nginx缓存控制 Nginx教程 Nginx跨域 Nginx负载均衡配置 Nginx负载均衡 Nginx防盗链 Java设计模式 工厂方法模式 简单工厂模式 Nginx静态文件配置 Nginx日志切割 Nginx配置 Nginx概念 Nginx安装 Centos7 单例模式 java 反射 mysql死锁 泛型
Theme by Vdoing | Copyright © 2020-2025 Kitty Daddy | License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式