mysql分区表测试.doc
还剩
8页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,喜欢就下载吧,价低环保!
内容要点:
partition_name part, partition_expression expr, partition_description descr, table_rows from information_schema.partitions where table_schema = schema() and table_name='test'; 可以查看表具有哪几个分区、分区的方法、分区中数据的记录数等信息 4. explain partitions select 语句通过此语句来显示扫描哪些分区,及他们是如何使用的.);这样的语句会报错。MySQL Database Error: A PRIMARY KEY must include all columns in the table's partitioning function;CREATE TABLE emptt (empno varchar(20) NOT NULL ,empname varchar(20) ,deptno int(11),birthdate date NOT NULL,salary int(11) ,primary key (empno,salary))PARTITION BY range (salary)(PARTITION p1 VALUES less than (100),PARTITION p2 VALUES less than (200));在主键中加入 salary 列就正常。2. MySQL 分区处理 NULL 值的方式如果分区键所在列没有 not null 约束。如果是 range 分区表,那么 null 行将被保存在范围最小的分区。如果是 list 分区表,那么 null 行将被保存到 list 为 0 的分区。在按 HASH 和 KEY 分区的情况下,任何产生 NULL 值的表达式 mysql 都视同它的返回值为 0。为了避免这种情况的产生,建议分区键设置成 NOT NULL。3. 分区键必须是 INT 类型,或者通过表达式返回 INT 类型,可以为 NULL。唯一的例外是当分区类型为 KEY 分区的时候,可以使用其他类型的列作为分区键( BLOB or TEXT 列除外)。4. 对分区表的分区键创建索引,那么这个索引也将被分区,分区键没有全局索引一说。5. 只有 RANG 和 LIST 分区能进行子分区,HASH 和 KEY 分区不能进行子分区。6. 临时表不能被分区。四、 获取 mysql 分区表信息的几种方法1. show create table 表名可以查看创建分区表的 create 语句 2. show table status 可以查看表是不是分区表 3. 查看 information_schema.partitions 表 select Alter table emp remove partitioning;--不会丢失数据重建分区:这和先删除保存在分区中的所有记录,然后重新插入它们,具有同样的效果。它可用于整理分区碎片。 ALTER TABLE emp rebuild partition p1,p2;优化分区:如果从分区中删除了大量的行,或者对一个带有可变长度的行(也就是说,有VARCHAR,BLOB,或 TEXT 类型的列)作了许多修改,可以使用“ALTER TABLE ... OPTIMIZE PARTITION”来收回没有使用的空间,并整理分区数据文件的碎片。 ALTER TABLE emp optimize partition p1,p2;分析分区:读取并保存分区的键分布。ALTER TABLE emp analyze partition p1,p2;修补分区:修补被破坏的分区。 ALTER TAB
发表评论
暂无评论,赶快抢占沙发吧。