mysql 单表字段多少合适_公司DBA关于MySQL开发的一点经验

2023-11-15

尽量不要让数据库做过多运算

数据库主要是用来存储的,我们应避免让数据库做运算,比如写定时任务,存储过程等。复杂的计算应该在程序代码中实现。我们应该尽量简单的使用数据库。

控制数据量

一年内单表数据量一般含char不超过500W条,我们需要合理的分表。单个库的表建议在300到400之间。

单表字段数量

单表的字段应该少而精,那多少合适呢?一般单表字段上限控制在20到50个。

在开发中,我们要注意避免使用大SQL、大事务。

避免使用NULL字段

我发现很多童鞋在建表时喜欢字段默认NULL,使用NULL很难进行查询优化,我们如果对NULL列加索引,需要额外空间,而且含NULL的符合索引无效。

`a` char(32) DEFAULT NULL`b` int(10) NOT NULL

比如上面这种。

少用TEXT

我们可以使用VARCHAR代替TEXT,因为TEXT类型处理性能比VARCHAR要低,TEXT会强制生成临时表,从而浪费更多空间。UTF-8下,VARCHAR(65535)大概占用64K空间。

如果一定要使用,就拆成

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 单表字段多少合适_公司DBA关于MySQL开发的一点经验 的相关文章

  • 数字化转型战略下的数据安全问题及治理对策

    随着数字化转型在各行业的持续推进 数据作为生产的重要要素 其安全性日益受到关注 如何在数据安全各项法律法规的强监管下 确保企业业务合法 数据使用合规 业务有序发展成为当前全行业关注的焦点 本文将分析当前数字化转型背景下的数据安全现状 梳理存
  • 华三ftp服务器信息发布命令,h3cne命令行.doc

    h3cne命令行 PAGE13 NUMPAGES13 目 录 TOC o 1 3 h z u HYPERLINK l Toc283211304 1 常规系统维护 PAGEREF Toc283211304 h 2 HYPERLINK l To
  • 已知三角形的两点坐标,和三个边长,求第三点的坐标

    前几天做一个功能 实现N多圆球的碰撞时 写的该算法 代码比较容易 使用了三角形的余弦定理 算法是二维的 改成三维也容易 其实三维的我也实现过 用于骨骼动画的IK处理上 1 已知三角形的两点坐标 和三个边长 求第三点的坐标 2 bool Ca
  • 多数据源连接池

    做元数据管理 需要查询多个数据源的元数据 不用orm框架 直接用java实现 如下 主要有几个重要的类 MultiPool 连接池 ConnectionManager 连接管理器 DBConenction 数据库连接对象 1 MultiPo
  • 网络层协议--IP简析 && 域名系统

    IP 因特网协议 ICMP 因特网控制协议报文 ARP 地址解析协议 RARP 反向地址解析协议 ip地址分类 A类 大型网络 0 开头 7位网络号 主机标识24位 B类 中型网络 10 开头 14位网络号 主机标识16位 C类 小型网络
  • PCL1.8的那些坑!各种编译及使用问题汇总

    在win10上用vs2013编译及使用pcl180遇见了各种坑 这里做个汇总 既是总结 也希望能给后来人引路 1 编译到visualization模块的时候 会有如下语句报错 if pcl visualization getColormap
  • DRM驱动程序开发思路和实践

    DRM驱动程序开发思路和实践 DRM Direct Rendering Manager 是Linux内核中的一个模块 用于管理GPU的渲染功能 在开发Linux下的图形驱动程序时 我们需要使用DRM模块作为基础 通过它来访问GPU的硬件资源
  • 20K测试工程师面试会考察哪些能力?

    前言 今年刚接触了 功能 测试工程师的面试工作 有遇到对信贷业务流程较熟悉的 工作内容纯测试app功能的 什么都接触过但是不够深入的 发现简历上写的东西和实际真的有点差距 面试也是一个艺术活 为了更好地考察面试者的能力 让面试工作更加有条理
  • switch更新主机服务器维护,switch更新链接不到服务器

    switch更新链接不到服务器 内容精选 换一换 客户在云容器引擎上搭建服务为手机应用订阅信息 首先客户端会向部署在CCE集群上的服务端 redis 发起请求 成功订阅信息服务 后继服务端侧会定时推送订阅的消息给客户端 服务端部署后 第一次
  • 编译cm for nexus5

    dependence bison build essential curl flex git gnupg gperf libesd0 dev liblz4 tool libncurses5 dev libsdl1 2 dev libwxgt
  • C++中派生类对基类成员的三种访问规则

    C 中派生类对基类成员的访问形式主要有以下两种 1 内部访问 由派生类中新增成员对基类继承来的成员的访问 2 对象访问 在派生类外部 通过派生类的对象对从基类继承来的成员的访问 今天给大家介绍在3中继承方式下 派生类对基类成员的访问规则 1
  • leetcode 27-移除元素 python

    给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于 val 的元素 返回移除后数组的新长度 不要使用额外的数组空间 你必须在原地修改输入数组并在使用 O 1 额外空间的条件下完成 元素的顺序可以改变 你不需要考虑数组中超出
  • require用法

    现在前端的页面都采用模块化来加载js 避免了js加载的延迟顺序依赖等问题 原理的东西这里不多做解释 我们这节只是介绍一下require的用法 1 首先我们要下载require js文件 2 html引入 这里src是require js的路
  • Netty实时接收数据放入缓存处理简单示例

    因为硬件设备使用的udp协议 传输数据 客户端只顾着发数据 所以大部分操作都在我服务端进行操作 做到数据实时 定义为每秒客户端发送来一次数据 展示 暂定方案为netty redis map netty这块我就不多赘述了 不懂得可以先看net
  • 创建Spring Boot框架项目- maven工程--多种方式

    文章目录 创建Maven工程的方式有很多种 以下简单介绍三种 使用Maven Spring Initializr 2 1选择默认方式 1 gt 默认方式 2 gt 但是有可能加载不出来因为用的国外的网址 3 gt 有时候也会加载出来 4 g
  • TypeError: "x" is not a constructor 无厘头使用 vuex 的坑

    2019 11 25 写 vuex store js 的时候 因为 export default new Vuex store store 给了个小写 所以爆出了一个 vuex a store is not a constructor 的错
  • Python提取ABAQUS结果数据

    背景介绍 调研发现 传统结构设计过程中需要依赖工程师的理论知识和工程经验 针对具体问题提出初步设计方案 后续通过多次的迭代优化 直到满足要求为止 这种传统设计方法不仅工作量大 效率低 企业还需要投入巨量的成本 因此 我们可以通过优化算法 有
  • LLVM系列第十章:控制流语句if-else-phi

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • jsp&servlet&jdbc&mysql实现简单的增删查改(一)

    1 关于JDBC JDBC Java DataBase Connectivity 是一种用于执行SQL语句的Java API 是Java和数据库之间的一个桥梁 它由一组用Java语言编写的类和接口组成 各种不同类型的数据库都有相应的实现类

随机推荐

  • MathCAD14破解版

    MathCAD14 是美国的PTC公司研发推广的一款老牌的工程计算软件 也可以说是一种交互式数值计算系统 只要输入一个数学公式或者方程组或者矩阵都可以通过该软件直接得出结果 它拥有五个扩展库 求解与优化 数据分析 信号处理 图像处理 和小波
  • 如何写好一份软件开发设计文档

    设计文档 也被称作技术规范和实现手册 描述了你如何去解决一个问题 是确保正确完成工作最有用的工具 其目的是迫使你对设计展开缜密的思考 并收集他人的反馈 进而完善你的想法 同时在软件交付和交接的过程中 能让其他人更通俗易懂的了解之前的设计目的
  • 【Python小技巧】.py .pyd .pyw 都是干什么用文件?想分发时加密py脚本文件?

    文章目录 前言 一 什么是 py 文件 二 什么是 pyd 文件 pyd 文件是用 Python 编程语言编写的 是通过编译 Python 代码生成的 py 和 pyd 文件格式之间的区别 如何创建 pyd 文件 如何使用 pyd文件 三
  • Android USB电源管理

    The USB peripheral detects the lack of 3 consecutive SOF packets as a suspend request from the USB host 1 驱动shutdown顺序 系
  • 黑盒测试方法:边界值分析具体步骤及实例

    边界值分析法也是黑盒测试方法之一 强调测试边界条件 而非等量类划分 其过程是确定输入值的最大值和最小值 然后将测试点置于这些极端值以及它们之间 使用边界值分析法可以揭示程序在处于边界条件时的bug 并能够更有效地完成测试工作 以下是该方法的
  • TypeError: defineConfig is not a function

    场景 当我们在做打包配置的时候 出现如下错误 原因 由于用vue cli直接创建了vue 3的项目 而里面的生态并非都是最新版 vue config js中的代码如下 使用了vue 3的语法 解决 输入 vue upgrade 一路向下 即
  • vue+typescript封装axios,实现取消重复请求

    vue cli3可以直接生成vue typescript项目 然后对axios进行封装 实现拦截多次重复请求 并取消 直接撸代码 也是借鉴网上的 做了修改 在根目录下新建axios tool ts文件 import Vue from vue
  • Matlab_输出成绩等级A、B、C、D、E

    输入一个百分制成绩 要求输出成绩等级A B C D E 其中90 100为A 80 89为B 70 79为C 60 69为D 60以下为E 以下会分别使用if语句和switch语句实现 1 if语句实现如下 c input 请输入成绩 if
  • Timestamp : Unable to compare with value [Binary]kettle插入到Oracle报错

    kettle插入更新到Oracle报错 Timestamp Unable to compare with value Binary Binary can t be converted to a timestamp 如图 原因 一般是前一步如
  • 设计模式(现在只总结了常用的8种)

    一 设计模式的七大原则 1 设计模式的目的 编写软件过程中 程序员面临着来自耦合性 内聚性以及可维护性 可扩展性 重用性 灵活性 等多方面的 挑战 设计模式是为了让程序 软件 具有更好 代码复用性 相同功能的代码只需要写一次 可读性 代码简
  • 指针到底能不能修改其指向的常量字符串?

    http m blog csdn net article details id 11248789 1 指针到底能不能修改其指向的常量字符串 今天做一个字符串右移函数时 直接使用指针来修改字符串常量的值出现了奇怪运行时错误 代码如下 incl
  • openGauss学习笔记-56 openGauss 高级特性-DCF

    文章目录 openGauss学习笔记 56 openGauss 高级特性 DCF 56 1 架构介绍 56 2 功能介绍 56 3 使用示例 openGauss学习笔记 56 openGauss 高级特性 DCF DCF全称是Distrib
  • snipaste——一款强大的、免费的截图软件

    说到截图软件 大家首相想到的恐怕就是QQ 甚至有人戏称steam在中国是 吃鸡启动器 QQ在很多人眼中就是一款截图软件 诚然 日常使用QQ截个图没什么问题 但是和snipaste比起来确实小巫见大巫 加之很多朋友并不喜欢打开电脑就启动QQ
  • HashMap源码分析

    HashMap源码分析 HashMap是Java集合框架中常用的数据结构之一 它提供了一种用于存储键值对的哈希表实现 在本文中 我们将深入源码 详细分析HashMap的实现原理和关键方法 HashMap的基本结构是一个数组和一组链表 或红黑
  • Spring Boot参考指南——Starter POMs

    13 2 Gradle Gradle用户可以直接在它们的dependencies节点处导入 starter POMs 跟Maven不同的是 这里没有用于导入共享配置的 超父 super parent apply plugin java re
  • unity 毛笔字笔触(画图)

    毛笔字笔触 RawImage using System Collections Generic using UnityEngine using UnityEngine UI using Random UnityEngine Random p
  • redis相关

    如果redis没有设置expire 他是否默认永不过期 清理线上Redis没有设置过期时间的key 青苔小榭的博客 CSDN博客 如何给Redis中未设置过期时间key添加过期时间 知乎 Redis中的几种更新策略 如何实现redis数据的
  • git配置与常用命令

    git配置与常用命令 git是一个开源的分布式版本控制系统 可以有效 高速地处理从很小到非常大的项目版本管理 gitbash是一个适用于Windows环境的应用程序 它为Git命令行体验提供了一个仿真层 相当于在window上通过git b
  • Linux下tar简介

    最常见的压缩与解压命令是tar 1 命令格式 tar 参数选择 压缩后的文件名 需要压缩的文件 文件名 压缩命令 例如 tar cf all tar jpg tar 参数选择 需要解压的文件名 解压命令 例如 tar xf all tar
  • mysql 单表字段多少合适_公司DBA关于MySQL开发的一点经验

    尽量不要让数据库做过多运算 数据库主要是用来存储的 我们应避免让数据库做运算 比如写定时任务 存储过程等 复杂的计算应该在程序代码中实现 我们应该尽量简单的使用数据库 控制数据量 一年内单表数据量一般含char不超过500W条 我们需要合理