首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL统计数据库所有的数据量

场景:mysql统计一个数据库里所有的数据量,最近在做统计想查找一个数据库里基本所有的数据量,数据量少的通过select count再加起来也是可以的,不过的数据有点多,不可能一个一个地查 记得在...Navicat里,选择一个数据量,点击,如图: 是可以看到所有具体的数据行的 然后可以通过sql实现?...在mysql里是可以查询information_schema.tables这张的 SELECT table_rows,table_name FROM information_schema.tables...大概意思是对于MyISAM才是正确的统计数据,但是对于InnoDB引擎的,可能与实际值相差 40% 到 50%,所以只是一个大概的统计 所以针对这种情况,要更改存储引擎,肯定是不太合适,因为InnoDB...是默认的存储引擎,能支持事务外健,并发情况性能也比较好 所以,根据网上的做法,重新analyze 对应,在mysql8.0版本是不管用的,发现查询数据还是不对,估计是mysql版本太高,mysql5版本没验证过

6.8K10

N天爆肝数据库——MySQL(3)

,保证数据的一致性 和完整性 外键约束: 概念 外键用来让两张中的数据之间建立连接,从而保证数据的一致性和完整性。...多表查询 概述:指从多张中查询数据 笛卡尔积:在多表查询时,需要消除无效的笛卡尔积 分类 连接查询 内连接:相当于查询A,B交集部分数据 外连接 左外连接:查询左所有数据,以及两张交集部分数据...右外连接:查询游标所有数据,以及两张交集部分数据 自连接:当前与自身的连接查询,自连接必须使用别名 子查询 多表查询-内连接 隐式内连接 SELECT 字段列表 FROM 1,2 WHERE...条件...; 显示内连接 SELECT 字段列表 FROM 1[INNER]JOIN2 ON连接条件...; 注意 内连接查询时两张交集的部分 多表查询-外连接 左外连接 SELECT 字段列表...union all 会将全部的数据直接合并在一起,union 会对合并之后的数据去重。 子查询 概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。

18420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL分区

    Mysql的一些优化方式: 根据情况更换适当的数据库引擎,一般最好是使用MyISAM引擎,因为是在内存中所以查询速度要比其他引擎快得多。 一张必须要有主键。...使用子查询需要注意的是:在where条件中使用子查询的话,在子查询会返回多个值的情况下要使用IN、NOT IN、ALL、ANY之类允许返回多个值的条件判断,如果使用的是关系运算符来作为判断则只能返回一个值...,返回多个值会报错。...连接查询: 连接查询分为内连接和外连接,外连接又分为右外连接、左外连接和全外连接,不过在mysql里不支持全外连接的写法。...内连接:就是把两张的记录进行连接,因为它们有关系的映射,所以连接在一起方便客户的查看。能够使用内连接将两张有关系映射的的数据符合条件的显示出来,不符合条件的就不显示。

    7.1K20

    Mysql优化器-mysql详解(六)

    Mysql规定一个页在磁盘与内存交互的成本是1.0,读取或者监测数据是否存在成本是0.2。 Mysql优化器的工作步奏大概是:1、计算全扫描的代价。2、计算各个索引扫描的代价。...全扫描计算主要看聚簇索引占用多少data_length,我们知道每个页是16kb,所以可以通过这个参数算出多少页,那么如何看data_length呢,这是属于统计数据,通过show table status...前面说过外连接和内连接的区别就是,内连接的on语句没满足则直接舍弃,外连接如果被驱动没满足查询条件,则会返回null到结果集。...In的子查询不仅仅限于此,发现物化之后可以转内连接,因为有两张,但是有更好的选择,mysql还有semi-join,直接放弃物化,直接半连接,半连接与内连接不同的是,内连接返回的是两个的数据,并且on...满足几条就返回几条,而半连接不关系被驱动满足几条数据,只要一条满足,就返回驱动的数据。

    54810

    mysql之join

    前言: 了不起学弟:学长啊,我最近在学习mysql,对于这个join,我也有了自己的一些看法,这个join就差不多就是把两张连接在一起对吧!...了不起:嗯,差不多就这个意思,你把两张连接在一起在一起,你还缺少一个最终要的on条件。如果没这个条件可不行,那就是union all一样,单纯的把两张拼接在一起了。...inner join 就是取两张的交集。脑袋里想想一下,两个圈 第一个圈A,第二个圈B,把两个圈重合一部分,相交的地方就是innerjoin所处的数据,相交的条件 就是我们on后面的。...而left join,就是包含了相交的地方,和左的地方,按照刚刚的例子也就是说,包含了所有的圈A。 举个刚才的例子,假设刚刚的订单和产品。...订单又2条记录,一条记录的产品是在产品表里的,另一条记录不在产品表里。 如果我们innerjoin,那我们的到结果就是那条在产品有记录的那条订单。

    14110

    MYSQL基本操作-select 查询语句【续】

    当结合在一起时,where在前,group by 在后。...,reader.readerid,reader.readername from book,reader; – 将两张的指定字段合并返回 在where中指定连接条件 SELECT * FROM readertype...两张一样的,分别对两张(一样的两张)进行联结得到笛卡儿积,再对笛卡尔积中的结果根据where进行 行过滤。...和borrowsum的信息展示出来 别名:此查询中两张其实是一样的,DBMS并不知道你要引用的是哪张,所以解决这个问题需要用到别名 联合查询 其实Mysql并没有全连接,Oracle才有全连接(...,返回 TRUE,否则返回 FALSE; 用于判断子查询的结果集是否为空,若子查询的结果集不为空,返回 TRUE,否则返回 FALSE; 适合外表大而内小的情况 适合内大而外表小的情况 无论哪个

    1.8K40

    带你学MySQL系列 | 多表连接查询的92语法和99语法,你都知道吗?

    笛卡尔积现象产生的原因:两张没有有效的连接条件。...添加连接条件后: 可以看到,笛卡尔积最终产生的记录数是两张中各自数据的乘积,当没有使用连接查询的时候,如果两张中数据特别大的时候,将会撑爆你的内存,那是很可怕的,因此我们要学会使用连接查询...--sql99语法的优势 连接和后面的where条件筛选,分离开来。 对于sql92语法来说,连接用的是where,where筛选用的也是where,混淆在一起不清不楚。...4)自连接:最大特点是,一张看作两张。 什么叫做一张看作两张呢?也就是说,自连接是同一张之间的连接,连接条件就是这张中的不同字段。...① 内连接 假设A和B进行连接,使用内连接的话,凡是A和B能够匹配上的记录,就会查询出来,这就是内连接。AB两张没有主副之分,两张是平等的。

    97820

    这个大走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了

    这张的索引是正常的呀,主键就是 id。 根据官方文档,可以知道有如下几个原因 太小了,走索引不值当的。但我们这里这两张都非常大,都是千万级别的数据。...对于 WHERE 或者 ON 的条件,没有合适的索引,这也不是我们这里的情况,两张都针对 WHERE 和 ON 条件有合适的索引(这里查询条件虽然都放到了 WHERE 里面,但是后面的分析我们会知道这个...使用索引列与常数值作比较, MYSQL 通过索引分析出这个覆盖了中大部分的值,其实就是分析出命中的行最后回拉取数据的时候,的文件中大部分页都要被加载到内存中进行读取,这样的话与其说先将索引加载到内存中获取命中列...我们这个 SQL 中,t_order_rel 实际上根据 where 条件只会返回几十条数据,t_order 与 t_order_rel 是 1 对多的关系,这里不会命中太多数据的。...,来确保分析器的统计数据的准确性。

    75120

    MySQL(九)之数据的查询详解(SELECT语法)二

    上一篇讲了比较简单的单查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等。希望大家能都得到帮助!...1.2、普通双查询     需求:查询书的编号、书的名字、书的批发商编号、书的批发商名字     分析:看下要求,就知道要查询两张,如果需要查询两张,那么两张的关系必定是外键关系,或者类似于外键关系...(类似于也就是说两张并没有真正加外键约束,        但是其特点和外键是一样的,就像上面我们手动创建的两张一样,虽然没有设置外键关联关系,但是其特性跟外键关系是一样的。)    ...三、合并查询   3.1、UNION关键字    合并结果集,将多个结果集拼接在一起。合并的时候只关注列数相同,不关注数据类型。但是在没有特殊需求的情况下最好不要将数据类型不同的列进行合并。     ...注意:唯一的差别就在正则表达式不一样,一般使用这种模糊查询,使用MySQL中的'_'和'%'就已经足够了。   2)查询以特定字符或字符串结尾的记录   3)用符号"."

    1.9K100

    一个MySQL索引引发的血案

    本人在做测试服务的过程中,开发了一个功能,就是从两个库的两张从查出来一个账号的login_id和user_id,功能非常简单,就是执行sql语句,处理返回结果,再返回。...,两张都不到10万条数据,开始怀疑数据库执行的问题。...看来不是MySQL服务的问题。 然后我取消连查询,单独去查一条记录,测试结果非常快,从建立连接到返回结果,都是百毫秒级别的。...看来问题就应该出现在联的问题,我仔细查找了两张的结构,依然没有发现问题,我去使用两张主键联立其他类似的返回结果两张都ok。...我再次使用两张的login_id和user_id去联立其他,惊奇发现user_info这张奇慢无比。

    52750

    Mysql查询及高级知识整理(上)

    Mysql基础 ?...inner join 交集 inner 内连接 outer join 差集 outer 外连接 自连接 当table1和table2本质上是同一张,只是用取别名的方式虚拟成两张以代表不同的意义...= mgr.eid; 聚合函数 l AVG(【DISTINCT】 expr) 返回expr的平均值 l COUNT(【DISTINCT】 expr)返回expr的非NULL值的数目 l MIN...(【DISTINCT】 expr)返回expr的最小值 l MAX(【DISTINCT】 expr)返回expr的最大值 l SUM(【DISTINCT】 expr)返回expr的总和 特别注意:...选择B+Tree 时间复杂度:算法执行的复杂程度 空间复杂度:算法在运行过程中临时占用存储空间大小的量度 聚簇索引:数据存储方式,数据行和键值聚簇存储在一起 非聚簇索引:数据行和键值聚簇存储不在一起

    81140

    数据测试方法

    检查全条数或者检查分区条数。这种方式依赖接口自动化平台,通过调用dubbo接口,判断接口返回的数据指标是否为0,监控数据是否产出。...目前有赞元数据管理平台已集成相关数据视图: 字段级别完整性: 唯一性判断:保证主键或某些字段的唯一性,防止数据重复导致和其他join之后数据翻倍,导致最终统计数据偏大。...非空判断:保证重要字段非空,防止空数据造成和join之后数据丢失,导致最终统计数据偏少。...多套存储之间对比:比如有赞数据报表中心针对支付,应用层存储分别用到了mysql和kylin,用作主备切换,那么相同维度下的kylin-A.支付金额 = mysql-B.支付金额。...我们深度剖析数据横向对比的底层逻辑,本质就是两张的不同字段,进行逻辑运算符的比较,也比较容易抽象成工具。目前有赞“数据比对工具”已经落地,下面给出我的一些思路: 输入两张,分别设置两的主键。

    1.1K41

    数仓链路保障体系与数据测试方法经验分享(好文收藏)

    检查全条数或者检查分区条数。这种方式依赖接口自动化平台,通过调用dubbo接口,判断接口返回的数据指标是否为0,监控数据是否产出。...目前有赞元数据管理平台已集成相关数据视图: 字段级别完整性: 唯一性判断:保证主键或某些字段的唯一性,防止数据重复导致和其他join之后数据翻倍,导致最终统计数据偏大。...非空判断:保证重要字段非空,防止空数据造成和join之后数据丢失,导致最终统计数据偏少。...多套存储之间对比:比如有赞数据报表中心针对支付,应用层存储分别用到了mysql和kylin,用作主备切换,那么相同维度下的kylin-A.支付金额 = mysql-B.支付金额。...我们深度剖析数据横向对比的底层逻辑,本质就是两张的不同字段,进行逻辑运算符的比较,也比较容易抽象成工具。目前有赞“数据比对工具”已经落地,下面给出我的一些思路: 输入两张,分别设置两的主键。

    1.5K10

    Mysql之join

    介绍 MySQL 中的join可以分为如下三类: INNER JOIN(内连接,或等值连接):获取两个中字段匹配关系的记录。...内连接 对上述两张进行内连接,连接条件为name字段相等....会返回两张中都存在的数据. mysql> select * from student join student_grade on student.name = student_grade.name...> 笛卡尔积在一些场景中有应用,比如:A表示所有学生的记录,B是所有课程的记录,那么AB两张的笛卡尔积可以表示所有可能的选课情况. 2.左外连接 对上述两张进行左外连接,连接条件为name相等.可以看到...当外连接的连接条件有对单进行限定的时候,先进行单的过滤,之后进行连接.但是并不影响结果的行数. mysql> select * from student left join student_grade

    62840

    浅谈mysql分区、分、分库

    HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。...注: INNODB 要是独立空间(innodb_file_per_table=1)。 注: 目前只有5.6才支持单指定目录,且目录是mysql:mysql。...3.只能通过int类型的字段或者返回int类型的表达式来分区,通常使用year或者to_days等函数(mysql 5.6 对限制开始放开了)。...垂直分的拆分原则是将热点数据(可能会冗余经常一起查询的数据)放在一起作为主表,非热点数据放在一起作为扩展。这样更多的热点数据就能被缓存下来,进而减少了随机读IO。...关联数据,应该在业务Service层做文章,分别获取主表和扩展数据然后用关联字段关联得到全部数据。 在一个流量监控系统中,由于网络流量巨大,统计数据很庞大,需要按天分

    1.3K10

    MySQL【知识改变命运】10

    这时候就用到了联合查询 2:联合查询就是多个的组合查询,一次查询涉及两张或则两张以上的,成为联合查询 1.联合查询在MySQL里面的原理 参与查询的所有笛卡尔积,结果集在临时中 实例:创建两张...查询"唐三藏"同学的成绩 确定几张两张学生和成绩(取两张的笛卡尔积) select * from student,score; 根据之间的关系,确定过滤条件 select * from...外连接 • 外连接分为左外连接、右外连接和全外连接三种类型,MySQL不⽀持全外连接。 • 左外连接:返回的所有记录和右中匹配的记录。...如果右中没有匹配的记录,则结果集中对应字段会显⽰为NULL。 • 右外连接:与左外连接相反,返回的所有记录和左中匹配的记录。如果左中没有匹配的记录,则结果集中对应字段会显⽰为NULL。...• 全外连接:结合了左外连接和右外连接的特点,返回左右中的所有记录。如果某⼀边中没有匹配的记录,则结果集中对应字段会显⽰为NULL。

    7510
    领券