广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 配置统计数据
  • 877
分享到

MySQL 配置统计数据

MySQL配置统计数据 2017-05-22 09:05:01 877人浏览 无得
摘要

什么是统计数据 统计数据怎么存储 两种存储方式: 存储形式: 存储的信息 如何更新统计数据 NULL 值如何统计 参考文档 什么是统计数据 Mysql 为了制定执行计划收集表的相关

MySQL 配置统计数据

  • 什么是统计数据
  • 统计数据怎么存储
    • 两种存储方式:
      • 存储形式:
    • 存储的信息
  • 如何更新统计数据
  • NULL 值如何统计
  • 参考文档

什么是统计数据

Mysql 为了制定执行计划收集表的相关信息,如索引行数,索引基数(不同值的数量),占用页面数等等。这些信息被称为统计数据

同一条 sql 语句,在不同的数据量级下,不同的索引结构下,执行计划都是千差万别的。
mysql 选定执行计划的标准就是这些统计数据。

统计数据怎么存储

两种存储方式:

1. 基于磁盘的永久性存储
2. 基于内存的非永久性存储

默认情况下,MySQL 配置为持久化到磁盘,咱们这次也只讨论持久化到磁盘的形式,因为基于内存的形式统计的数据与其相同。
在全局变量中有两个值来标志是否是用磁盘来存储
rVXOEj

innodb_stats_persistent:是否使用磁盘
Innodb_stats_persistent_sample_pages:统计数据的抽样页面数

存储形式:

cLC0rO

可以看到有两个表存储数据统计信息:innodb_table_stats & innodb_index_stats

存储的信息

首先来看 innodb_table_stats 中存储结构
SOEozp

字段含义:

字段 含义
database_name 数据库
table_name 表名
last_update 上次更新时间
n_rows 表中行数
clustered_index_size 聚簇索引占用的页面数
sum_of_other_index_sizes 除了聚簇索引之外的其他索引站用的页面数

再来看一下 innodb_index_stats 中的信息

字段 含义
database_name 数据库
table_name 表名
index_name 索引名称
last_update 上次更新时间
stat_name 可以看到最后一列的 stat_description 中有解释这一列是什么意思
n_leaf_pages: 叶子页面的数量
size: 总页面数。
值得注意的是, n_diff_pfx01n_diff_pfx02, 这两个是联合索引中前缀索引的不同部分。
stat_value 统计出的数值
sample_size 为了统计上一个数值用了多少个页面
stat_description 对统计数据的简介

如何更新统计数据

这些统计数据并非是一成不变的,否则数据库的执行计划会变得特别不准确。
有两种方式来启用统计数据更新:
• 开启 innodb_stats_auto_recalc (在页面变动超过 10%【定义值】 时,触发统计数据的计算,异步过程,不会阻塞)
• 手动调用 ANALYZE TABLE 语句来更新统计信息 (同步过程,会阻塞请求)

NULL 值如何统计

现在一切都很正常,除了 NULL (万恶之源)
因为 NULL 有多重语义,对于基数来说,有三种解释:
1. 列中所有的 NULL 都是同一个值,记为 1
2. 忽略 NULL,记为 0
3. 每个 NULL 都算作一个不同的值,记为 N

基于这个事实,mysql 为用户提供了一个可配置的系统变量: innodb_stats_method
1. nulls_equal:对应上文 1
2. nulls_unequal:对应上文 2
3. nulls_ignored:对应上文 3

建议:最好不要在索引列中存放 NULL 值

参考文档

《MySQL 是怎样运行的:从根儿上理解 MySQL》
《MySQL 手册》

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 配置统计数据

本文链接: https://www.lsjlt.com/news/5594.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 配置统计数据
    什么是统计数据 统计数据怎么存储 两种存储方式: 存储形式: 存储的信息 如何更新统计数据 NULL 值如何统计 参考文档 什么是统计数据 MySQL 为了制定执行计划收集表的相关...
    99+
    2017-05-22
    MySQL 配置统计数据
  • MySQL配置数据库审计
    MySQL配置数据库审计 1 背景2 环境3 准备工作4 安装审计4.1 解压审计包4.2 查看数据库插件目录4.3 安装数据库审计插件4.3.1 复制到插件目录4.3.2 修改插件权限4.3.3 设置审计参数4.3.4 修改数据库...
    99+
    2023-08-17
    数据库 mysql java
  • Mac 系统配置 MySql 数据库
    1. 安装 MySql 数据库 1 双击打开安装包 mysql-8.0.19-macos10.15-x86_64.dmg: 2 双击 mysql-8.0.19-macos10.15-x86_64.pkg 运行安装包,并点击 继续 按钮: ...
    99+
    2023-08-18
    mysql 数据库 macos
  • django配置mysql数据库
    查看ubuntu已安装的所有软件:dpkg -l   dpkg -l | grep mysql查看软件安装的路径dpkg -L | grep mysql查看开机启动的软件,需要额外安装插件:sudo apt...
    99+
    2022-10-18
  • MySQL 如何设计统计数据表
    目录是否需要实时更新物化视图工具(Flexviews)计数表总结缓存型数据表通常在统计数据时会经常用到,因此也会叫统计性数据。举个例子来说,对于员工、部门数据表而言,我们可能会需要查询一个部门下有多少员工。这时候有三...
    99+
    2022-05-24
    MySQL 统计数据表 MySQL 设计数据表
  • MySQL数据库配置详解
    下面是我生产环境中MySQL的配置详解:[mysqld]mysql服务端配置server-id=1服务ID,每个服务的服务ID不同即可log-bin=mysql-bin定义bin_log的位置和名称,mys...
    99+
    2022-10-18
  • MySQL数据库安全配置
    这篇文章主要讲解了“MySQL数据库安全配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库安全配置”吧!1、前言  MySQL是完全网络化的...
    99+
    2022-10-18
  • centos7系统安装与配置mysql数据库教程
    本文主要给大家简单讲讲centos7系统安装与配置mysql数据库教程,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望centos7系统安装与配置mysql数...
    99+
    2022-10-18
  • 【①MySQL】浅谈数据库系统:MySQL的简介与安装配置
    前言 欢迎来到小K的MySQL专栏,本节将为大家带来MySQL的简介与安装配置的详细讲解~ 目录 前言一、数据库系统概述数据(Data)数据库(Database)数据库管理系统(Data...
    99+
    2023-09-17
    数据库 mysql java
  • MySql数据库安装及配置
    http://dev.mysql.com/downloads/mysql/官网进行下载,由于5.7没有32位的选择其它版本下载64位版本安装及配置如下截图步骤   ...
    99+
    2022-10-18
  • 我的tomcat-mysql数据源配置
    步骤:1.下载apache-tomcat-5.5.17.zip和apache-tomcat-5.5.17-admin.zip,分别是服务器和管理工具卸载原来的5.0解压5.5到tomcat5.5目录下,ad...
    99+
    2022-10-18
  • MySQL数据库的安全配置
    本篇内容介绍了“MySQL数据库的安全配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  由于MySQL...
    99+
    2022-10-18
  • Django配置MySQL数据库教程
    简介   在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。如果使用SQLite这种轻量级的数据库不需要手动配置。 一、安装Python访问MySQL的模块   在 ...
    99+
    2018-12-25
    Django配置MySQL数据库教程 数据库入门 数据库基础教程
  • mysql中统计数据的方法
    小编给大家分享一下mysql中统计数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中统计数据的方法:1、使用M...
    99+
    2022-10-18
  • MySQL数据库——MySQL配置文件(my.ini)详解
    my.ini 是 MySQL 数据库中使用的配置文件,MySQL 服务器启动时会读取这个配置文件,我们可以通过修改这个文件,达到更新配置的目的。 这里以 Windows 系统下的 my.ini 配置文件为样板,讲解 MySQL 配置文件中的...
    99+
    2023-09-02
    数据库 mysql 服务器
  • windows中配置安装mysql数据库
      MySql 是一种免费的关系型数据库,相较于 MsSqlServer 和 Oracle 比较轻量化,安装也很简单,而且免费不需要的版权费用,个人认为一般的小项目采用还是比较合适的,当然也有部分数据量很大的项目会采用 MySql...
    99+
    2014-10-27
    windows中配置安装mysql数据库
  • Django1.7+python 2.78+pycharm配置mysql数据库
    配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说...
    99+
    2022-06-04
    数据库 python mysql
  • Mysql数据库集群简单配置
    环境:192.168.5.155      mysql-mgm-node192.168.5.156     &nbs...
    99+
    2022-10-18
  • 配置mysql数据库主从复制
        一、    原理说明 复制有以下三个步骤:   (a)主服务器把数据更改记录到二进制日志中。(这叫做二进制日志事件(binary...
    99+
    2022-10-18
  • JBoss中怎么配置MySQL数据源
    JBoss中怎么配置MySQL数据源,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 JBOSS_HOME  +- modul...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作