mysql 统计信息收集,MySQL统计信息详解(改)

自动收集和手动收集,由参数innodb_stats_auto_recalc控制,默认为ON。

自动收集根据统计信息存储方式的不同有不同的触发条件。

关闭自动收集功能,需通过analyze table手动更新。MySQL统计信息存储方式分为:持久化和非持久化,由参数innodb_stats_persistent控制,默认为ON。

持久化会将统计信息保存至磁盘上。

非持久化仅将统计信息存储在内存中,当数据库重启后,统计信息将丢失。非持久化统计信息触发条件:

mysql.innodb_table_stats

mysql.innodb_index_statsMySQL统计信息如何计算:

MySQL的统计数据是基于采样数据估算的,不同存储方式的统计信息的采样大小由不同的参数控制:

持久化统计信息:innodb_stats_persistent_sample_pages,默认20pages

非持久化统计信息:innodb_stats_transient_sample_pages,默认8pages

也就是说在持久化统计信息下,当InnoDB更新优化程序统计信息时,它会对表中每个索引的随机页面进行采样,以估计索引的基数。根据官方文档介绍:需要扫描的统计信息大小为:innodb_stats_persistent_sample_pages的值*表中索引列的数量*分区数如果发现得出的执行计划不准确,可以通过增大采样大小来产生更准确的估计值。但是采样大小过大会导致生成统计时间过长,造成过多性能消耗。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java和MySQL是广泛使用的编程语言和数据库管理系统。Java可以使用MySQL来存储、访问和操作数据。以下是Java和MySQL中最常用的增删查操作的中文详解: 1. 添加数据 添加数据通常使用INSERT语句。例如,如果要向名为“students”的表中添加一条记录,具有“id”、“name”和“age”三个字段,可以使用以下Java代码: ``` String sql = "INSERT INTO students (id, name, age) VALUES (1, '张三', 20)"; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); ``` 2. 删除数据 删除数据通常使用DELETE语句。例如,如果要从名为“students”的表中删除所有年龄小于18岁的学生记录,可以使用以下Java代码: ``` String sql = "DELETE FROM students WHERE age < 18"; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); ``` 3. 修数据 修数据通常使用UPDATE语句。例如,如果要将名为“students”的表中所有年龄小于18岁的学生的姓名为“未成年人”,可以使用以下Java代码: ``` String sql = "UPDATE students SET name = '未成年人' WHERE age < 18"; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); ``` 4. 查询数据 查询数据通常使用SELECT语句。例如,如果要从名为“students”的表中检索所有学生记录,可以使用以下Java代码: ``` String sql = "SELECT * FROM students"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID:" + id + ",姓名:" + name + ",年龄:" + age); } ``` 以上是Java和MySQL中最常用的增删查操作的中文详解。在实际应用中,还可以使用各种条件语句、排序和分组等操作来更精细地查询、修和删除数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值