一,尽量不字啊数据库做运算

1,尽量不再数据库做运算,

2,将复杂运算移动到cpu

3,尽可能简单应用mysql

二,控制表数据量

1,纯 int不超过1000w

2,含char不超过500w

3,建议单裤不超过300-400个表

三,保持表的苗条身材

1,表的字段数少而精

2,单表字段数上限在20~50个

四,平衡范式和冗余

1,效率优先,提升性能

2,没有绝对的对与错

3,适当牺牲范式,加入冗余

五,拒绝3B

1,大SQL

2,大事务

3,大批量

六,字段设置龟定

1,将字符转化为数字(更高效,查询快,占空间更小)

2,优先使用enum或set(值已知或有限,如 性别)

3,避免使用NULL字段(很难优化查询,加索引需要额外空间,含NULL复合索引无效)

4,尽量不使用text/blob(必须使用时拆分到单独的表)

5,不再数据库存图片

七,索引浅龟定

1,谨慎添加索引

2,最好不超过字段数20%

3,字段前加前缀

4,不在索引列做运算

八,主键设置

1,二级索引存储主键值2,主键不应更新或者修改3,按自增顺序插入值4,忌用字符串做主键5,若不指定主键,innoDB会使用唯一且非空值索引代替

九,事务,触发器,or,limit浅龟定1,事务/连接使用原则:即开即用,用完即关

2,与事务无关的操作放到事务外面,减少锁资源的占用

3,不破坏一致性的前提下,使用多个短事务代替长事务4,尽可能少用存储过程

5,尽可能少使用触发器6,减少使用mysql函数对结果进行处理(由客户端程序负责)

7,尽量不适用select *,只取需要的数据列

8,改or为in()【or效率 O(n),in效率O(log n)】控制in的数量,建议小于2009,改or为union

10,减少使用count(*)

11,limit(偏移量越大则越慢)

select id,col1,col2 from test limit 1999999,10;

替换为:

select id,col1,col2 from test where id>1999999 limit 10;

杂项浅龟定:

1,适当分解连接保证高效并发

2,永远不再程序端显式加锁【外部锁对数据库不可控,高并发是时灾难】

3,统一字符集为utf-8

4,统一命名规范【库表名统一小写,索引名称默认为"idx_字段名",库名用缩写】

mysql浅龟定的更多相关文章

  1. Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...

  2. MySQL浅谈 LEFT JOIN

    On条件(在“A left join b on conditional_expr”)决定如何从table B 中检索数据行(Matching-State); 如果B中没有行匹配On 条件,额外的B的所 ...

  3. sql server 与 mysql在自定以数据类型的区别

    sql server   中可以使用 create  TYPE postal_code FORM varchar(6) not null; 用于限定邮编的数据位数,他基于varchar数据类型 注意: ...

  4. mysql浅谈--事务ACID特性

    mysql MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管 ...

  5. mysql简单建表

    MySQL 字段约束 null,not null,default,auto_increment [来源于] 没有规矩,不成方圆,任何事物都是如此.在MySQL中,每个字段定义都包含附加约束或者修饰符, ...

  6. 关于MySQL的安装使用心得

    MySQL浅浅地学习了几天,当然还是转到正轨Java上来了,昨天打了一串代码,测试注解来着,结果MySQL挂了~~~ 如何干净卸载MySQL帖子有很多,不再赘述,注册表是个好东西~~ 卸载了Mysql ...

  7. MYSQL索引结构原理、性能分析与优化

    [转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...

  8. MySql UDF 调用外部程序和系统命令

    1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...

  9. centos7下 安装mysql

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-rele ...

随机推荐

  1. springMVC+Mybatis(使用AbstractRoutingDataSource实现多数据源切换时)事务管理未生效的解决办法

    业务场景: A.B两个单位,系统部署同一套代码: A.B两系统能相互访问: 要求将数据从A系统同步到B系统,再将反馈信息回发给A: 实际开发情况: 因为系统比较小,最开始设计架构的时候没有考虑到消息互 ...

  2. 【MyBatis源码分析】select源码分析及小结

    示例代码 之前的文章说过,对于MyBatis来说insert.update.delete是一组的,因为对于MyBatis来说它们都是update:select是一组的,因为对于MyBatis来说它就是 ...

  3. javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  4. CSS 简单了解(二)

    我们第一天说了简单的HTML,第二天说了简单的CSS.那么今天.咱们就来说一说他们的结合如何使用吧! 首先说引用方式,和使用方法吧! 1.内部样式表.(放入<head>中) <hea ...

  5. vue-router如何根据不同的用户给不同的权限

    闲聊: 小颖去年在上家公司用的vue1.0之前在做路由这块用的router.map,但是现在vue2.0里已经不能用了,所以之前解决权限问题的例子,小颖也参考不了呜呜 之前看一个美女写的:elemem ...

  6. rem的js

    html { font-size : 20px; } @media only screen and (min-width: 401px){ html { font-size: 25px !import ...

  7. Linux centOS的vm虚拟机配置详细 中文版

    这里以安装cenOS6.6 为例 如果想要需要cenos 6.6 ios文件的朋友看我的另一篇关于cenos6.6版本的下载详细 文中内容是摘抄自老男孩老师的<linux 跟老男孩学Linux运 ...

  8. ionic 的缓存 和局部刷新

    最近两天在做项目时,发现ionic的缓存功能非常方便好用,提高了再低端手机特别是android比较低版本上的流畅性!可是,后来发现,整体的缓存整个页面并不是一个一劳永逸的办法,结合局部刷新功能,感觉就 ...

  9. 手把手教你从基础学习JQuery

    JQuery JQuery 语法 1.jQuery("选择器").action();通过选择器调用事件函数 但jQuery中,jQuery可以用$代替,即$("选择器&q ...

  10. python+NLTK 自然语言学习处理:环境搭建

    首先在http://nltk.org/install.html去下载相关的程序.需要用到的有python,numpy,pandas, matplotlib. 当安装好所有的程序之后运行nltk.dow ...