写在前面的话:

总是在灾难发生后,才想起容灾的重要性;

总是在吃过亏后,才记得曾经有人提醒过。

(一)核心军规

(1)不在数据库做运算:cpu计算务必移至业务层

(2)控制单表数据量:单表记录控制在1000w

(3)控制列数量:字段数控制在20以内

(4)平衡范式与冗余:为提高效率牺牲范式设计,冗余数据

(5)拒绝3B:拒绝大sql,大事物,大批量

(二)字段类军规

(6)用好数值类型

tinyint(1Byte)

smallint(2Byte)

mediumint(3Byte)

int(4Byte)

bigint(8Byte)

bad case:int(1)/int(11)

(7)字符转化为数字

用int而不是char(15)存储ip

(8)优先使用enum或set

例如:`sex` enum (‘F’, ‘M’)

(9)避免使用NULL字段

NULL字段很难查询优化

NULL字段的索引需要额外空间

NULL字段的复合索引无效

bad case:

`name` char(32) default null

`age` int not null

good case:

`age` int not null default 0

(10)少用text/blob

varchar的性能会比text高很多

实在避免不了blob,请拆表

(11)不在数据库里存图片:是否需要解释?

(三)索引类军规

(12)谨慎合理使用索引

改善查询、减慢更新

索引一定不是越多越好(能不加就不加,要加的一定得加)

覆盖记录条数过多不适合建索引,例如“性别”

(13)字符字段必须建前缀索引

(14)不在索引做列运算

bad case:

select id where age +1 = 10;

(15)innodb主键推荐使用自增列(SK:博主不认可)

主键建立聚簇索引

主键不应该被修改

字符串不应该做主键

如果不指定主键,innodb会使用唯一且非空值索引代替

(16)不用外键

请由程序保证约束

(四)sql类军规

(17)sql语句尽可能简单

一条sql只能在一个cpu运算

大语句拆小语句,减少锁时间

一条大sql可以堵死整个库

(18)简单的事务

事务时间尽可能短

bad case:

上传图片事务

(19)避免使用trig/func

触发器、函数不用

客户端程序取而代之

(20)不用select *

消耗cpu,io,内存,带宽

这种程序不具有扩展性

(21)OR改写为IN()

or的效率是n级别

in的消息时log(n)级别

in的个数建议控制在200以内

select id from t where phone=’159′ or phone=’136′;

=>

select id from t where phone in (’159′, ’136′);

(22)OR改写为UNION

mysql的索引合并很弱智

select id from t where phone = ’159′ or name = ‘john’;

=>

select id from t where phone=’159′

union

select id from t where name=’jonh’

(23)避免负向%

(24)慎用count(*)

(25)同上

(26)limit高效分页

limit越大,效率越低

select id from t limit 10000, 10;

=>

select id from t where id > 10000 limit 10;

(27)使用union all替代union

union有去重开销

(28)少用连接join

(29)使用group by

分组

自动排序

(30)请使用同类型比较

(31)使用load data导数据

load data比insert快约20倍;

(32)打散批量更新

(33)新能分析工具

show profile;

mysqlsla;

mysqldumpslow;

explain;

show slow log;

show processlist;

show query_response_time(percona)

mysql 数据库军规_MySQL 数据库开发的 36 条军规相关推荐

  1. MySQL数据库开发的 36 条军规

    转载自  MySQL数据库开发的 36 条军规 核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 拒绝大SQL,复杂事务, ...

  2. mysql数据库开发的36条军规

    前言 一般的小项目,比如几百人左右访问的项目,访问量几万的项目,如果想用缓存,单机实例完全够用.小黄图就是用的阿里云256MB配置的Redis缓存,日几千的访问量是妥妥够用的了.Redis号称可以支撑 ...

  3. 「Mysql数据库」MySQL数据库开发的 36 条军规!

    2019独角兽企业重金招聘Python工程师标准>>> 核心军规 尽量不在数据库做运算 控制单表数据量 纯INT不超过10M条,含Char不超过5M条 保持表身段苗条 平衡范式和冗余 ...

  4. 有效软件开发的25条军规

    作者 | Allen Holub 译者 | 马超 出品 | CSDN(ID:CSDNnews) 今天笔者在外文的技术博客上看到了一个非常亮眼的建议合集,整理一下姑且起名叫有效软件开发的25条军规,下面 ...

  5. 产品读书《创业36条军规》

    <创业36条军规>PPT 刘润读书笔记 孙陶然先生是中国最成功的连续创业者之一,本书出版之后加印多次,被奉为创业者的圣经.我读这本书的目的并不是为了鼓励自己创业,而是以此来认清自己的条件. ...

  6. 书摘---创业36条军规5:如何选择创业方向

    本文继续前面系列的内容,下面重点摘录创业36条军规书中的第五部分:如何选择创业方向 分两部分 一.做最肥的市场 如果有可能,创业要选择最肥的市场入手,在一个大市场里占小份额要比在一个小市场里占大份额要 ...

  7. 高性能网页开发的14条军规

    高性能网页开发的14条军规 作者:Yahoo! 来源:西风坊 酷勤网收集 2008-05-13 摘要 酷勤网 1. 尽可能的减少 HTTP 的请求数 2. 使用 CDN(Content Deliver ...

  8. mysql数据库财务_MySQL数据库——从入门到删库跑路(二)

    DQL 查询表中的记录 select .... from ..... 语法 select 需要查询的信息(列名1,列名2,.......列名n) / * from 表名 [where 条件]; 完善下 ...

  9. mysql数据库应用_MySQL数据库应用 从入门到精通 学习笔记

    以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库 查看所有数据库:SHOW DATABASES 创建数据库:CREATE DA ...

最新文章

  1. mc有什么红石机器人_mc:作为一个mc萌新应该掌握哪些基本功?还需要知道些什么?...
  2. 第三方服务整合-阿里云OSS上传文件-填坑
  3. CSS3属性——(一)
  4. 接口测试 java_接口测试--Java
  5. 处理器startup.s 常见汇编指令,伪指令解释 .globl _start .section .data .text .align
  6. 《计算机网络》第三章:数据链路层(The Data Link Layer)
  7. 区块链 怎么设置区块最大交易容量
  8. Javaweb免费RDP报表工具常用函数的用法总结
  9. 阿里 计算机底层架构原理 pdf,完美起航-震撼!8位阿里大牛编写的2500页计算机底层架构原理解析,香香香...
  10. 十本Java网站开发必看书籍
  11. 音乐标签修改 android,音乐标签Android版
  12. dhuacm出题网站搭建
  13. 软件工程导论第九到十二章章节复习总结附思维导图
  14. 论二级域名收集的各种姿势
  15. Qt QPainter::end: Painter ended whith 2 saced states
  16. 机器学习:导数与偏导数的区别.
  17. war包和jar包的区别
  18. net::ERR_ABORTED 404 (Not Found)
  19. 解析淘宝淘口令获取商品ID方法说明
  20. 使用python,目前最全的Python使用手册

热门文章

  1. python 统计素数并求和
  2. 如何判断1024!末尾有多少个0
  3. 论文介绍《CrowdFormer: An Overlap Patching Vision Transformer for Top-Down Crowd Counting 》
  4. P5723 【深基4.例13】质数口袋
  5. 前端开发精华网站(强烈推荐!)
  6. 彻底解决烦人的win10更新
  7. 理解 PHP 8 的 JIT
  8. PDF/OCR识别提取工具:Readiris Pro 17 for Mac
  9. kali流量转发后依然断网_三大运营商的无限流量卡,哪家的网速最快,看完千万别选错了...
  10. pstack使用和原理