1. processlist

功能:查看连接数
注意:自己创建连接 一定要关闭连接!!
现在项目都用数据源 这个基本不用自己管(DBCP,c3p0,Druid(https://github.com/alibaba/druid),HiKariCP)

字段说明
  • List item
  • id : sessionId
  • user:操作用户
  • host:操作主机 端口
  • db: 操作的数据库
  • command: 表示命令类型
  • info:表示详细的sql语句
  • time:表示相应命令执行时间
  • state:表示命令执行状态

schema 与数据类型优化

1. 数据类型的优化
  1. 更小的通常更好
    他们占用更少的磁盘、内存、cpu缓存
    并且处理时cpu周期更少
    但是需要注意 不要低估数据存储值的范围(字段过小会截断错误)
    可以设置不同的类型 插入数据测试(数据存储大小直接看数据文件 )

    windows环境下 mysql的data 目录下

    frm后缀是表结构

    idb后缀是数据文件 idb 引擎就是 innoDB
    如果不是idb 是MYD MYI 引擎就是MyISAM
    MYD 是数据文件 MYI是索引文件

  2. 简单就好
    简单数据类型的操作,通常更少的数据周期

    • 整型比字符串操作代价更低 因为字符集和校对规则 字符串比整型更复杂
    • 使用mysql自建类型 而不是字符串 存储日期和时间
    • 用整型存储IP INET_ATON(‘192.168.2.1’) – > 数字
    • INET_NTOA(数字) --> IP地址
  3. 尽量避免使用NULL

    • 如果查询中包含null的列,对mysql来说很难优化
    • 因为null使得索引、索引统计、和值的比较更加复杂
    • null 改为not null 性能提升比较小 所以没必要都改 只是在设计的时候注意 尽可能不为null
  4. 实际细则

    • 整数类型 (尽可能满足需求最小的数据类型)

      • TYNYINT (8位存储空间)
      • SMALLINT(16位存储空间)
      • MEDIUMINT(24位存储空间)
      • INT(32位存储空间)
      • BIGINT(64位存储空间)
    • 字符 & 字符串类型
      • char

        • 固定长度
        • 最大长度255
        • 会自动删除末尾空格
        • 检索效率、写效率 比varchar高 以空间换时间
        • 应用场景:
          a. 存储长度波动不大的数据 如:md5摘要
          b.存储短字符串 经常更新的字符串
      • varchar 根据实际内容长度保存数据

        • 使用最小符合需求的长度
        • varchar(n) n<255 使用额外一个字节保存长度
                           n>255 使用额外两个字节保存长度
        • varchar(5) 和 varchar(255) 保存同样的内容
          硬盘存储空间是一样的,但是内存空间占用不同,是指定的大小
        • varchar在5.6之前 变更长度 或者从255一下变更到255以上之后 就会导致锁表
        • 应用场景:
          a.存储长度波动比较大的数据 比如文章
          b. 字符串很少更新的场景,内次更新后都会重算并使用额外存储空间保存长度
          c.适合保存多字节字符 汉字 特殊字符 等
      • TEXT BLOB
        MySQL 会把每个BLOB 和 TEXT 当做一个对象来独立处理
        两者都是为了存储很大数据而设计的字符串类型
        Text 存储字符串
        Blob 存储二进制

      • datetime

        • 占用8个字节
        • 与时区无关 数据库底层时区配置 对datetime无效
        • 可保存到毫秒
        • 可保存事件范围大
        • 不要使用字符串存储日期 (占用空间大 损失日期类型函数的便捷性)

      • timestarmp

        • 占用4字节
        • 时间范围1970-01-01 到 2038-01-19
        • 精确到秒
        • 采用整形存储
        • 依赖数据库设置时区
        • 自动更新timestarmp列的值
      • date

        • 占3个字节
        • 使用date类型 还可以利用日期时间函数进行日期之间的计算
        • date类型用于保存 1000-01-01 到 9999-12-21之间的日期
      • 用枚举类型替代字符串

        -- 创建表
        create table enum(id  enum('aaa','bbb','ccc') not null
        )
        -- 插入数据
        insert into enum(id)
        values ('aaa')insert into enum(id)
        values ('bbb'),('ccc')-- 查询  结果虽然是aaa bbb ccc
        select * from enum -- 结果是1 2 3 他是整形数据存储的
        select 0+id from enum
        -- 排序 与创建表的时候 定义的顺序有关系 按照定义顺序来的
        select  id from enum order by id;
      • 字段最好指定长度

mysql优化 个人笔记 非礼勿扰 -m02相关推荐

  1. mysql优化 个人笔记 非礼勿扰 -m04

    1. 索引干啥的 加快查询效率!! 帮助mysql高效获取数据结构 2. 索引怎么用 -- 添加索引 ALTER TABLE `test` ADD INDEX `n_uid_title` (`uid` ...

  2. mysql优化 个人笔记 非礼勿扰 -m07

    Mysql基本架构图 两种优化方式 RBO 基于规则优化 CBO 基于成本优化 这个用的多 Mysql 日志 1. binlog (server) 数据库data目录下的binlog文件 show V ...

  3. mysql优化 个人笔记 非礼勿扰 -m08

    binlog 简单使用 数据恢复 1. 查看binlog状态 show variables like '%log%'; 2. 打开binlog vim /etc/my.cnf[mysqld] # bi ...

  4. mysql优化 个人笔记 非礼勿扰 -m05

    一 .树 树是一种递归数据结构,包含一个或多个数据节点的集合 其中一个节点被定为树的根,而其余节点被称之为根的子代. 除根节点以外的其他节点均被划分为多个非空集合,其中每个集合都称为子树 节点与节点之 ...

  5. mysql优化 个人笔记 非礼勿扰 -m06

    索引分类 1.主键索引 主键是一种唯一索引,但他必须制定为PRIMARY KEY ,每个表只能有一个主键(一个主键指的不是一个列 也可能有多个列联合主键) 其实主键没有的话 数据库会根据唯一键 建立索 ...

  6. mysql优化 个人笔记 - 非礼勿扰 -m17

    上一篇讲到了 datadir.socket.pid_file.port.default_storage_engine.skip-grant-tables.character_set_client.ch ...

  7. mysql优化 个人笔记 - 非礼勿扰 -m16

    一 . 服务器参数设置 vim /etc/my.conf 1. 通用设置 #数据文件存放目录 datadir=/var/lib/mysql # mysql.socket表示server和client在 ...

  8. mysql优化 个人笔记 非礼勿扰 -m03

    数据源连接池 1. druid 地址 https://github.com/alibaba/ -> https://github.com/alibaba/druid 右侧有菜单 通用配置 htt ...

  9. mysql优化 个人笔记 (mysql 进阶索引 ) 非礼勿扰 -m14

    查询优化 1. 查询慢的可能原因 网络 CPU (时间片) IO (磁盘) 上下文切换 (线程切换) 系统调用 生成统计信息 锁等待时间 2. 优化数据访问 查询性能低的主要原因是访问的数据太多,某些 ...

最新文章

  1. Python中最好用的命令行参数解析工具
  2. extremeComponents(ec)源码分析
  3. 2-RabbitMQ核心概念及AMQP协议
  4. 字符串驻留机制截图?#注意回顾字符串的深浅拷贝小数据池那节
  5. .NET和JAVA的比较- 体系结构
  6. Python对命令提示符cmd以及操作系统的一些操作
  7. ndows外壳公用dll,Windows外壳公用DLL已停止工作
  8. mysql根据出生年月计算年龄
  9. 三相逆变器双pi控制器参数如何调节_光伏逆变器MPPT基本原理李星硕
  10. #后疫情时代的新思考#AI助力,“无接触”服务加速金融数字化转型丨数据猿公益策划...
  11. 训练赛 Discrete Logarithm Problem
  12. MySQL数据库--韩顺平老师课
  13. 掌握销售谈判三大策略,开单成功率提升60%!
  14. 各种群体寻优算法的比较
  15. 劳务派遣员工转正制度是什么
  16. IDEA启动报错Plugin Error Problems found loading plugins: Plugin “GlassFish Integration“ was not...
  17. processon画类图和时序图
  18. 解决nrm ls命令没有*(星号)的问题
  19. Jessi-开源项目知识点
  20. npm命令配置淘宝镜像

热门文章

  1. google高级语法
  2. Cloudera Manager安装CDH6教程-(二)搭建Cloudera和CDH6
  3. linux硬盘安装deepin,如何安装Deepin Linux?Deepin Linux安装体验
  4. @Transactional注解
  5. CASS与ArcGIS结合人为配准影像的办法
  6. 推出新软件的一些最佳做法
  7. 近5年安徽省高考状元名单,全部被北大清华录取
  8. warning C6011: dereferencing NULL pointer <name>
  9. AccessControlException: Permission denied: user=Frankie, access=WRITE,
  10. 【Linux】centos创建用户以及赋予sudo权限