如果需要删除已经创建的直方图,用DROP HISTOGRAM就可以实现:
- mysql> ANALYZE TABLE payment DROP HISTOGRAM ON payment_date;
- +----------------+-----------+----------+---------------------------------------------------------+
- | Table | Op | Msg_type | Msg_text |
- +----------------+-----------+----------+---------------------------------------------------------+
- | sakila.payment | histogram | status | Histogram statistics removed for column 'payment_date'. |
- +----------------+-----------+----------+---------------------------------------------------------+
UPDATE HISTOGRAM可以一次性为多个列创建直方图。如果命令中间写错,ANALYZE TABLE仍然会起作用。比如,你指定了三列,但第二列不存在。MySQL仍然会为第一列和第三列创建直方图。
- mysql> ANALYZE TABLE customer UPDATE HISTOGRAM ON c_birth_day, c_foobar, c_birth_month WITH 32 BUCKETS;
- +----------------+-----------+----------+----------------------------------------------------------+
- | Table | Op | Msg_type | Msg_text |
- +----------------+-----------+----------+----------------------------------------------------------+
- | tpcds.customer | histogram | status | Histogram statistics created for column 'c_birth_day'. |
- | tpcds.customer | histogram | status | Histogram statistics created for column 'c_birth_month'. |
- | tpcds.customer | histogram | Error | The column 'c_foobar' does not exist. |
- +----------------+-----------+----------+----------------------------------------------------------+
- 3 rows in set (0.15 sec)
数据库内部发生了什么
当你读过MySQL手册,你可能已经注意到新的系统变量histogram_generation_max_mem_size。当用户建立统计直方图,这个值是用来控制大约多少内存能允许被使用。那么,为什么要控制这个呢?
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|