写在前面的话:

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

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

(一)核心军规

(1)不在数据库做运算

cpu计算务必移至业务层;

(2)控制单表数据量

int型不超过1000w,含char则不超过500w;

合理分表;

限制单库表数量在300以内;

(3)控制列数量

字段少而精,字段数建议在20以内;

(4)平衡范式与冗余

效率优先;

往往牺牲范式;

(5)拒绝3B

拒绝大sql语句:big sql

拒绝大事物:big transaction

拒绝大批量:big batch

(二)字段类军规

(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)不在数据库里存图片

这个我不能理解!

但这是赶集网的经验,求detail!

(三)索引类军规

(12)谨慎合理使用索引

改善查询、减慢更新;

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

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

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

(14)不在索引做列运算

!!!不只是索引,都不能做列运算吧!!!

bad case:

select id where age +1 = 10;

(15)innodb主键推荐使用自增列;

主键建立聚簇索引;

主键不应该被修改;

字符串不应该做主键;

如果不指定主键,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);

赶集网mysql36条军规_赶集网MySQL的36条军规相关推荐

  1. 小说网jsp源码_基于jsp+mysql的JSP小说网

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以. IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x, ...

  2. 苹果wifi网速慢怎么办_家里网速慢如何解决 提高WiFi网速方法【详解】

    几乎每个人家里都有无线WiFi,无线WiFi信号强弱则成为影响无线WiFi运用体验的重要原因之一.为什么家里无线WiFi网速时快时慢?为什么不一样位置的网速差别大?根据英国<每日邮报>报道 ...

  3. 实时网速监测app_实时网速安卓下载_实时网速监测安卓app下载-XP软件园

    详情介绍 实时网速安卓是一款简单实用的手机网速监测工具,自身的体积只有2m大小,对手机运行的网速数字显示最新网速,掌握目前手机网速情况,需要就来下载实时网速安卓吧. 实时网速安卓介绍 实时网速监测安卓 ...

  4. mysql合并多条纪录字段_Mysql应用mysql合并多条记录的单个字段去一条记录编辑

    <MysqL应用MysqL合并多条记录的单个字段去一条记录编辑>要点: 本文介绍了MysqL应用MysqL合并多条记录的单个字段去一条记录编辑,希望对您有用.如果有疑问,可以联系我们.测试 ...

  5. python官网支持货到付款吗_官网购买的iPhone12pro还没发货?试着用Python快速入手...

    引言 ​iPhone12pro有望成为2020年末真香机,动辄3000元的溢价让不少消费者选择了等待官网调货.除了官方与电商线上平台,苹果还采用了线下预约制提货.但每天少的可怜的出货量,和不到一秒钟就 ...

  6. 查一个字段中字符集超过30的列_详细解读MySQL的30条军规

    一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省 ...

  7. mac下载百度网盘文件限速_百度网盘限速怎么办 (20200412 )

    关注全新Four网络科技,电脑小技巧全知晓 360网盘关闭后,百度云似乎要成为国内网盘的唯一选择,然而百度云下载速度太慢,显然是被限速了.下面有3个方法用于百度网盘加速下载,演示的下载文件是大于1G的 ...

  8. 为什么手机网速太慢_手机网速慢怎么回事?一分钟就提速两倍的方法

    明明移动网络4G信号满格,但是上网却很慢,手机问题么?很多人认为手机信号满格就说明信号很好,网速理所应该很快.其实呢,不然...... 相同的运营商,相同的4G网络,为什么有的手机网速慢有的快呢?原来 ...

  9. 网新恒天_点网新角度和点网新React

    网新恒天 I was exploring the "dotnet new" experience last week and how you can extend template ...

最新文章

  1. Jquery知识小点备注
  2. php 避免xss_PHP防止XSS注入
  3. 高一计算机专业班主任工作总结,2016学年上学期高一班主任工作总结
  4. 在表达式 T(n) = 2T(n/2) + O(1) 与 T(1) = O(1) 中,T(n) 的时间复杂度为多少?
  5. 【matlab安装】手把手图文并茂安装matlab2021(win10版)
  6. android pickerview 多行,Android-PickerView系列之介绍与使用篇(一)
  7. 电脑如何安装android系统版本,电脑如何安装Android系统 电脑安装安卓系统教程
  8. 雅诗兰黛公司宣布晋升Stéphane de La Faverie为集团总裁
  9. [js]整合google,51ditu和mapbar的地图API [此博文包含图片]
  10. 斐波那契数列+pyton
  11. Transformer + RL:是强化学习魔高一尺,还是 Transformer 道高一丈? (1)
  12. 特征重要性与shap值
  13. 解释X_train,Y_train,X_test,Y_test分别表示什么
  14. 仿微信朋友圈动态列表
  15. 村上春树的《海边的卡夫卡》与中日现实
  16. Excel如何批量添加同一批注
  17. Nvidia Jetson AGX Xavier 硬件相关
  18. Oracle如何用单字段或多字段进行查重
  19. ImportError: cannot import name ‘_C’ from ‘maskrcnn_benchmark’
  20. Linux james邮件服务器的搭建

热门文章

  1. RGB color model
  2. 工资倒挂,IT 行业薪资潜规则如何规避?
  3. c语言编程齿轮模数选择,如何画齿轮,一看就懂
  4. WebGL、ThreeJS、BabylonJS、SceneJS和Cesium框架对比及简介
  5. 【转】我的大学六年(单片机大师郭天祥原创)
  6. python爬取携程网旅游_爬取携程网(ajax动态加载)
  7. 金蝶K3提取在途订单数据并设置触发(可用于在途订单交期回复)
  8. 产品订单交期越来越短,服装制造业企业该如何对待?
  9. 电子厂计算机常用英语,电子厂常用英语词汇
  10. 科大奥瑞物理实验——光纤传感器实验