求大神教如何用mysql查询多表的数量问题,也就是统计表,会用存储过程的最好

求大神教如何用mysql查询多表的数量问题,也就是统计表,会用存储过程的最好,第1张

查询哪些表,个字结构怎样,查询语句怎么写,查询结果是不是和结果表的结构一致?

把查询结果存入表,可以这样:

INSERT INTO 结果表 SELECT ... FROM .... WHERE .... GROUP BY ....

SQL Server 的每个数据库最多可存储 20 亿个表,每个表可以有 1024 列。

表的行数及总大小仅受可用存储空间的限制。每行最多可以存储 8,060 字节

如果创建具有 varchar、nvarchar 或 varbinary 列的表,并且列的字节总数超过 8,060 字节,虽然仍可以创建此表,但会出现警告信息。

如果试图插入超过 8,060 字节的行或对行进行更新以至字节总数超过 8,060,

将出现错误信息并且语句执行失败。

统计信息是数据库基于成本的优化器最重要的参考信息;统计信息不准确,优化器可能给出不够优化的执行计划或者是错误的执行计划。对统计信息的计算分为非持久化统计信息(实时计算)与持久化统计信息。

非持久化统计信息

统计信息没有保存在磁盘上,而是频繁的实时计算统计信息;

每次对表的访问都会重新计算其统计信息;

假设针对一张大表的频繁查询,那么每次都要重新计算统计信息,很耗费资源。

持久化统计信息

把一张表在某一时刻的统计信息值保存在磁盘上;

避免每次查询时重新计算;

如果表更新不是很频繁,或者没有达到 MySQL 必须重新计算统计信息的临界值,可直接从磁盘上获取;

即使 MySQL 服务重启,也可以快速的获取统计信息值;

统计信息的持久化可以针对全局设置也可以针对单表设置。

接下来,详细说 MySQL 统计信息如何计算,何时计算,效果评估等问题。在 MySQL Server 层来控制是否自动计算统计信息的分布,并且来决策是持久化还是非持久化。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5902143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存