Mysql的个人习惯
- 一定要有主键
一般使用的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的个人习惯的更多相关文章
- 不好的MySQL过程编写习惯
刚才为了测试一个东西,写了个存储过程: delimiter $$ drop procedure if exists sp_test$$ create procedure sp_test() begin ...
- MySQL的SSL加密连接与性能开销
本文转载自:http://www.innomysql.net/article/23959.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息) Contents [hide] 1 前言 ...
- mysql体系结构
mysql逻辑架构: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的:连接处理,身份验证,安全性等等. 第二层值得关注.这是MySQL的核 ...
- Mysql逻辑模块组成
总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query c ...
- ch2 MySQL 架构组成
第 2 章 MySQL 架构组成 前言 麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从 MySQL 物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL ...
- Navicat for MySQL Mac 破解版
今天在macOS 系统下搭建 Java开发环境,需要配置MySQL,按照Windows的习惯,使用Navicat for MySQL 操作比较习惯.然后找不到比较好的破解版,这里介绍一个老版的,还是英 ...
- MySQL架构
一.MySQL逻辑架构 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等. ...
- mysql 概念和逻辑架构
1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...
- 第 2 章 MySQL 架构组成
麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...
- <转载> MySQL 架构 http://www.cnblogs.com/winner-0715/p/6863802.html
1.MySQL整体逻辑架构 我们先下图看看MySQL整体逻辑架构(MySQL’s Logical Architecture) 图1 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都 ...
随机推荐
- 大模型应用开发初探 : 通用函数调用Planner
大家好,我是Edison. 上一篇,我们了解了什么是AI Agent以及如何用Semantic Kernel手搓一个AI Agent.有朋友留言说,自动函数调用对大模型有较高的要求,比如Azure O ...
- 仿函数(Functor)是什么?
仿函数(Functor) 仿函数是通过重载()运算符的类或结构体的对象.这样一个对象可以像普通函数一样被调用. 仿函数通常用于需要在对象内部保留状态或多次调用时有特定行为的情况. 特点: 仿函数是一个 ...
- 在C#中使用适配器Adapter模式和扩展方法解决面向的对象设计问题
之前有阵子在业余时间拓展自己的一个游戏框架,结果在实现的过程中发现一个设计问题.这个游戏框架基于MonoGame实现,在MonoGame中,所有的材质渲染(Texture Rendering)都是通过 ...
- eBPF 概述:第 1 部分:介绍
1. 前言 有兴趣了解更多关于 eBPF 技术的底层细节?那么请继续移步,我们将深入研究 eBPF 的底层细节,从其虚拟机机制和工具,到在远程资源受限的嵌入式设备上运行跟踪. 注意:本系列博客文章将集 ...
- DBA面试资源合集(含Oracle、MySQL、Redis等)-墨天轮
如今正值金九银十招聘季,众多企业开放大批岗位等待新力量的注入,各位DBA们,你们是否正在激情备战中? 作为企业数据化进程中十分重要的一环,DBA的职责越来越重要,作为高薪资岗位之一,应聘DBA的竞争也 ...
- 01-react的基本使用
// 导入react和react-dom包 类似 vue 中的 import vue from 'vue' import react from 'react' // 内部的组件 import reac ...
- mysql外联数据库
- 017 Python 流程控制之 if 判断
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- Go语言编写单元测试用例
Go单元测试示例 example/ |--division.go |--division_test.go 为什么被测试文件和测试文件通常放到同一个文件夹下以及同一个声明包里 通常情况下,我们把被测试的 ...
- 0.1 Introduction to the tenth anniversary edition
此序作于2010年 1970s&1980s, 除了将量子系统仅仅视为一种自然界中需要解释的现象,大家开始将其视为可以设计的系统. 这种新的观点引起了物理,计算机科学和信息理论等领域交叉融合之后 ...