专栏首页Linyb极客之路面试官:你有过一线的MySQL实战经验,能给我详细聊聊吗?

面试官:你有过一线的MySQL实战经验,能给我详细聊聊吗?

本文来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。

这篇文章建议你一定要背了。。。

核心军规

  1. 尽量不在数据库做运算
  2. 控制单表数据量 纯INT不超过10M条,含Char不超过5M条
  3. 保持表身段苗条
  4. 平衡范式和冗余
  5. 拒绝大SQL,复杂事务,大批量任务

字段类军规

  1. 用好数值字段,尽量简化字段位数
  2. 把字符转化为数字
  3. 优先使用Enum或Set
  4. 避免使用Null字段
  5. 少用并拆封Text/Blob
  6. 不在数据库中存图片

索引类军规

  1. 谨慎合理添加索引
  2. 字符字段必须建立前缀索引?
  3. 不在索引列做运算
  4. 自增列或全局ID做InnoDB主键
  5. 尽量不用外键

SQL类军规

  1. SQL尽可能简单
  2. 保持事务连接短小
  3. 尽可能避免使用SP/Trigger/Function
  4. 尽量不用Select *
  5. 改写Or为IN()
  6. 改写Or为Union
  7. 避免负向查询和%前缀模糊查询
  8. Count不要使用在可Null的字段上面
  9. 减少Count(*)
  10. Limit高效分页,SELECT * FROM message WHERE id > 9527 (or sub select) limit 10
  11. 使用Union ALL 而不用Union
  12. 分解链接,保证高并发
  13. Group By 去除排序
  14. 同数据类型的列值比较
  15. Load Data导入数据,比Insert快20倍
  16. 打散大批量更新,尽量凌晨操作

约定类军规

  1. 隔离线上线下
  2. 禁止未经DBA认证的子查询
  3. 永远不在程序段显式加锁
  4. 表字符集统一使用UTF8MB4

本文分享自微信公众号 - Linyb极客之路(gh_c420b2cf6b47),作者:Java面试那些事儿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL 性能优化技巧

    最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久。原因是新功能用到旧功能的接口,而这些旧接口的 SQL 查询语句关联5,6张表且编写不够规范,导致 ...

    lyb-geek
  • 深入理解MySQL索引原理和实现——为什么索引可以加速查询?

    说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这...

    lyb-geek
  • springboot实战之文件分片上传、断点续传、秒传

    上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法...

    lyb-geek
  • 数据库索引失效了?别慌!

    索引在我们使用MySQL数据库时可以极大的提高查询效率,然而,有时候因为使用上的一些瑕疵就会导致索引的失效,无法达到我们使用索引的预期效果,今天介绍几种MySQ...

    故里
  • 使用 TIMSDK 的自定义字段 iOS 示例

    "用户资料自定义字段","好友自定义字段","群成员维度自定义字段","群维度自定义字段" 均已键值对 Key-Value 形式存储并使用。扩展相应的字段 Ke...

    腾讯云 - zjiezhu
  • 一个人的app后端-熟练搭建parse

    docker run -p 27017:27017 -v ~/mongo/db:/data/db -d mongo

    于欣轩
  • 使用模式构建:属性模式

    原文:Daniel Coupal and Ken W. Alger 译者:牟天磊

    MongoDB中文社区
  • 天创信用总经理李文贤:金融科技加速金融变革

    在美国,第一个阶段是银行为主导的金融机构,第二个阶段是以核心企业为主导的供应链金融新模式,第三个阶段是产业金融和银行机构互相同步的过程。美国已经发展到第三个阶段...

    数据猿
  • Zookeeper术语介绍

    在之前的文章Zookeeper体系介绍中我们介绍了Zookeeper体系。因此,在深入了解ZooKeeper的工作之前,我们必须了解ZooKeeper中的一些术...

    后场技术
  • 使用模式构建:属性模式

    原文:Daniel Coupal and Ken W. Alger 译者:牟天磊

    MongoDB中文社区

扫码关注云+社区

领取腾讯云代金券