zabbix分区表操作步骤
Q&A:1.mul key:
1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列
2. 如果Key是PRI,那么该列是主键的组成部分
3. 如果Key是UNI,那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)
4. 如果Key是MUL,那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL
2.mysql分区表概述:
参考:
https://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
分区表分为四种:
range分区:基于属于一个给定连续区间的列值,把多行分配给分区
list分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择
hash分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算
key分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列
常用的是range和list分区
无论使用何种类型的分区,分区总是在创建时就自动的顺序编号,且从0开始记录,记住这一点非常重要。当有一新行插入到一个分区表中时,就是使用这些分区编号来识别正确的分区。
注1:
如果想在已经建好的表上进行分区,如果使用alter添加分区的话,mysql会提示错误:
ERROR 1505 <HY000> Partition management on a not partitioned table is not possible
正确的方法是新建一个具有分区的表,结构一致,然后用insert into 分区表 select * from 原始表;
http://blog.sina.com.cn/s/blog_5f54f0be01015tag.html
预计过程:
1.停止mysql,/etc/init.d/mysql stop
2.记录下要修改的表的表结构,
3.删除表,
4.创建和之前表结构一致但带有分区表的数据表
5.创建procedure,修改crontab
问题,修改之后,一段时间之前的数据会被删除,但这些数据会不会被别的表引用;
测试过程:
http://zabbixzone.com/zabbix/partitioning-tables/
页:
[1]