analyze table 部分

analyze table的目的在于 PHPChina 开源社区门户TF0B)O e%hw6seH
重新分析表中索引的唯一数
2j(O qD7u'b0唯一数越大的索引 在SELECT 查询时,该索引被使用的机率也就越大。
/md|B6U+n0 PHPChina 开源社区门户i-I,b's@zJ)Z^|}
可以通过show index from table来查看索引基数 PHPChina 开源社区门户�P6tq~_:NA
PHPChina 开源社区门户gL$A!^ Pp `"CV
例如
!HN7^'u5O6{0show index from board
"e/d,WcZ(`.QN�q"kd0
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
board0PRIMARY1b_idA10NULLNULL BTREE 
board1u_id1u_idANULLNULLNULL BTREE 
PHPChina 开源社区门户N0x(g#W(GuGc&}b0a E
PHPChina 开源社区门户 }4]{4qk
Cardinality列反应的就是该索引的基数。 
`ANALYZE TABLE`是一个用于优化数据库性能的SQL语句,主要用于收集表的统计信息,如行数、列分布等,以便于数据库管理系统(DBMS)动态调整索引策略和查询计划。在Oracle、PostgreSQL、MySQL(部分版本)等支持此功能的数据库中,它的基本用法包括以下几个步骤: 1. **语法基础**: ```sql ANALYZE [FULL] [BUFFERS] [NOBUFFERS] [UPDATE STATISTICS] [SAMPLE_SIZE sample_size_value] TABLE_NAME; ``` 这里各选项含义: - `FULL`:进行全面分析,包括重建索引统计数据。 - `BUFFERS` 或 `NOBUFFERS`:控制是否跟踪缓冲区活动。 - `UPDATE STATISTICS`:更新现有统计信息。 - `SAMPLE_SIZE`:指定样本大小,只对部分数据进行分析。 2. **目的**: - 收集表的最新统计信息,以改善查询优化器的选择。 - 当数据发生变化(例如插入、删除或修改大量数据)后,手动触发分析。 3. **何时使用**: - 新增大量数据后,或者发现查询性能下降时。 - 如果怀疑索引选择不当或查询计划不佳。 4. **注意事项**: - 不要频繁运行全量分析,因为这可能会消耗大量的系统资源。 - 样本分析可以在大规模表上减少开销,但可能牺牲精度。 5. **示例**: ```sql ANALYZE TABLE employees UPDATE STATISTICS; -- 更新employees表的统计信息 ``` 记得查阅你所使用的数据库系统的官方文档,因为不同的数据库可能有不同的语法细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值