• 一定要有主键

    一般使用的innodb引擎中会根据主健创建聚簇索引,这种方式会使得数据排列的更连续,减少随机IO

  • 关于数据长度

    考虑数据范围,够用的前提下,数据长度是越简单越好,数据类型是越小越好。

  • 尽量避免使用TEXT/BLOB类型

    data page 默认是16kb,每行数据长度超过8kb就会出现data page 分裂,这样就会有更多的离散IO。如果项目中必须有这样的字段存在,建议使用单独的表保存,不到用的时候不去查询。

  • 每个表增加version create_time update_time create_by update_by is_del 通用字段

    目的是好排查问题

  • 创建高效索引

    各个表尽量使用唯一索引或者主健进行关联;不要创建重复索引;字段没有离散度的不要创建索引;不要等到数据量巨大的时候在线上创建索引;

  • 尽量写简单的查询

    检查的查询会让mysql在查询优化阶段节省很多时间,对于执行引擎去检索的时候才会更好的使用索引查询。越复杂的查询越难控制索引的使用;除此之外,如果简单查询出来的数据是变更不频繁的数据,可以使用缓存来减少查询次数(这里的缓存不是mysql服务自带的缓存)

  • 禁用mysql自带的缓冲

    很鸡肋的技能。如果用了它的缓存并且设置的参数很大就占用了内存资源,如果参数设置的很小就会高频出现清理缓存、置换缓存等操作。得不偿失。

  • 只查询有用的字段

    对于执行引擎来说,无用的字段增加了内存消耗;对于server来说,增加了网络开销。对于应用来说,也是占用无效的内存。

  • 主链路的sql上线前自己explain

    看看是否使用了文件排序、临时表、有没有全表扫描

Mysql的个人习惯的更多相关文章

  1. 不好的MySQL过程编写习惯

    刚才为了测试一个东西,写了个存储过程: delimiter $$ drop procedure if exists sp_test$$ create procedure sp_test() begin ...

  2. MySQL的SSL加密连接与性能开销

    本文转载自:http://www.innomysql.net/article/23959.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息) Contents [hide] 1 前言 ...

  3. mysql体系结构

    mysql逻辑架构: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的:连接处理,身份验证,安全性等等. 第二层值得关注.这是MySQL的核 ...

  4. Mysql逻辑模块组成

    总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query c ...

  5. ch2 MySQL 架构组成

    第 2 章 MySQL 架构组成 前言 麻雀虽小,五脏俱全.MySQL    虽然以简单著称,但其内部结构并不简单.本章从 MySQL 物理组成.逻辑组成,以及相关工具几个角度来介绍    MySQL ...

  6. Navicat for MySQL Mac 破解版

    今天在macOS 系统下搭建 Java开发环境,需要配置MySQL,按照Windows的习惯,使用Navicat for MySQL 操作比较习惯.然后找不到比较好的破解版,这里介绍一个老版的,还是英 ...

  7. MySQL架构

    一.MySQL逻辑架构         第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等.         ...

  8. mysql 概念和逻辑架构

    1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...

  9. 第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

  10. <转载> MySQL 架构 http://www.cnblogs.com/winner-0715/p/6863802.html

    1.MySQL整体逻辑架构 我们先下图看看MySQL整体逻辑架构(MySQL’s Logical Architecture) 图1 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都 ...

随机推荐

  1. C++中对象的延迟构造

    本文并不讨论"延迟初始化"或者是"懒加载的单例"那样的东西,本文要讨论的是分配某一类型所需的空间后不对类型进行构造(即对象的lifetime没有开始),更通俗点 ...

  2. Parquet.Net: 将 Apache Parquet 移植到 .NET

    Parquet.Net 是一个用于读取和写入 Apache Parquet 文件的纯 .NET 库,使用MIT协议开源,github仓库:https://github.com/aloneguid/pa ...

  3. 大模型训练:K8s 环境中数千节点存储最佳实践

    今天这篇博客来自全栈工程师朱唯唯,她在前不久举办的 KubeCon 中国大会上进行了该主题分享. Kubernetes 已经成为事实的应用编排标准,越来越多的应用在不断的向云原生靠拢.与此同时,人工智 ...

  4. DevNow: Search with Lunrjs

    前言 假期真快,转眼国庆假期已经到了最后一天.这次国庆没有出去玩,在北京看了看房子,原先的房子快要到期了,找了个更加通透一点的房子,采光也很好. 闲暇时间准备优化下 DevNow 的搜索组件,经过上一 ...

  5. Android Studio自带Profiler工具内存泄露分析步骤

    1.运行需要检测内存泄露的程序 这里以"com.example.opengltest"程序为例. 2.点击Profiler按钮 3.点击SESIONS "+"号 ...

  6. vue前端开发仿钉图系列(7)底部数据列表的开发详解

    底部数据列表主要是记录图层下面对应的点线面数据,点击单元行或者查看或者编辑,弹出右侧编辑页面,点击单元行地图定位到相应的绘图位置.里面的难点1是动态绑定字段管理编辑的字段以及对应的value值,2是点 ...

  7. 前端 export default 和 export const name 的区别?

    export default 是默认导出export const 是命名导出 在一个vue文件中export const可以有多个,但是export default只有且仅有一个,{}表示导入非默认变 ...

  8. dotnet实现多态的三种方法

    虚方法 virual 抽象方法 abstract 不能 new  不带方法体: 接口 Interface

  9. Python入门:A+B问题

    1. A + B 问题I 前言 本篇作为课程第一篇,主要是对Python基础语法进行扫盲,本节课会学习到下面知识: 输入 本道题目的工作任务很简单,只是计算两个数的和,但是在计算之前,我们首先要明确的 ...

  10. KubeSphere v3.3.1 权限控制详解

    作者:周文浩,青云科技研发工程师,KubeSphere Maintainer.热爱云原生,热爱开源,目前负责 KubeSphere 权限控制的开发与维护. KubeSphere 3.3.1 已经发布一 ...