• phalcon Model 'partitions' could not be loaded(模型不支持分区语句)


    注意:
       很明确提示用phalcon自带的模型层是不能用partition这个关键字的
       
       解决方法:
         自己写个PDO类
         然后用pdo中的query方法执行语句成功;
    
    
    
    
    mysql分区目的
     是减少数据库的负担,提高数据库的效率,(提高表的增删改查效率)。
     
    
     什么是分表?
      将一个大表按照一定的规则分解成多张具有独立存储空间的实体表
      
      每个表都对应三个文件,MYD数据文件,.MYI索引文件,.frm表结构文件
      
      什么是分区?
      分区是将一个大表数据分段划分在多个位置存放
      分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。
       
     CREATE TABLE `orders3` (
     `order_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     `out_trade_no` VARCHAR(50) NOT NULL COMMENT '第三方订单号',
     `mch_id` INT(11) UNSIGNED NOT NULL COMMENT '系统商户号', 
     `writetime` INT(10) UNSIGNED NOT NULL COMMENT '下单时间',
     PRIMARY KEY (`order_id`, `writetime`)
    )
    ENGINE=InnoDB
    COMMENT='订单表'
    COLLATE='utf8_general_ci'
    AUTO_INCREMENT=1
    PARTITION BY RANGE (writetime)
    (
       /**表的所有分区标识符: d20161111必须是唯一的名字。(注意不区分大小写)**/
    	PARTITION d20161111 VALUES LESS THAN (unix_timestamp('20161111')), 
    	PARTITION d20161112 VALUES LESS THAN (unix_timestamp('20161112')), 
    	PARTITION dall VALUES LESS THAN MAXVALUE //这个加了后不能使用alter table `orders` add partition这个语句了
    ) 
    INSERT INTO orders VALUES (null, '第三方订单号', 1000001, 1472550901);
    INSERT INTO orders VALUES (null, '第1方订单号', 1000002, 1472513901);
     
    //对未分区的表进行分区
    alter table orders_channels partition by RANGE(writetime) (
        PARTITION d20161117 VALUES LESS THAN (unix_timestamp('20161118')),
        PARTITION d20161118 VALUES LESS THAN (unix_timestamp('20161119')),
        PARTITION d20161119 VALUES LESS THAN (unix_timestamp('20161120')),
    );
    //新增一个分区 alter table `orders` add partition (partition p20161112 values less than (unix_timestamp('20161112'))); //删除分区语句 alter table `orders` drop partition p20161116;
    //查询分区语句 SELECT partition_name part, partition_expression expr, partition_description descr, FROM_DAYS(partition_description) lessthan_sendtime, table_rows FROM INFORMATION_SCHEMA.partitions WHERE TABLE_SCHEMA = SCHEMA() AND TABLE_NAME='orders_channels' ; //orders_channels只需要改表明其他不动
  • 相关阅读:
    翻转链表二
    最短路径算法
    在二叉树中插入节点
    LightOJ 1341
    串的基本操作
    链队列的基本操作
    LightOJ 1370
    poj 3060 Visible Lattice Points
    欧拉函数介绍及简单模板
    zoj 3593 One Person Game
  • 原文地址:https://www.cnblogs.com/sixiong/p/6075181.html
Copyright © 2020-2023  润新知