优化前分析

1、DDL

  1. CREATE TABLE `tbl_order_snapshot` (
  2. `order_id` bigint(16) NOT NULL COMMENT '订单id',
  3. `server_id` int(10) NOT NULL COMMENT '租赁商id',
  4. `item_id` char(20) NOT NULL COMMENT '产品id',
  5. `images` varchar(500) DEFAULT NULL COMMENT '封面图片',
  6. `item_num` int(5) DEFAULT NULL COMMENT '订单产品数',
  7. `rental_money` decimal(11,2) DEFAULT NULL COMMENT '订单总租金',
  8. `deposit` decimal(11,2) DEFAULT NULL COMMENT '押金',
  9. `scheme_title` varchar(100) DEFAULT NULL COMMENT '产品标题',
  10. `sub_title` varchar(100) DEFAULT NULL COMMENT '推广标题',
  11. `model` varchar(100) DEFAULT NULL COMMENT '型号',
  12. `brand_name` varchar(100) DEFAULT NULL COMMENT '品牌中文名',
  13. `sku_name` varchar(100) DEFAULT NULL COMMENT '套餐名字',
  14. `rental_data` varchar(500) DEFAULT NULL COMMENT '租金设置',
  15. `buyout` decimal(11,2) DEFAULT NULL COMMENT '买断价格',
  16. `machine_desc` text COMMENT '机器描述',
  17. `detail_params` text COMMENT '规格参数',
  18. `new_old_tag` varchar(100) DEFAULT NULL COMMENT '新旧标签id',
  19. `good_choice_tag` varchar(100) DEFAULT NULL COMMENT '精选标签',
  20. `time_start` int(10) DEFAULT NULL COMMENT '开始租期',
  21. `time_end` int(10) DEFAULT NULL COMMENT '结束租期',
  22. `created_at` int(10) NOT NULL COMMENT '快照时间',
  23. PRIMARY KEY (`order_id`) USING BTREE
  24. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


优化方案

1、拆表方式:垂直分表

2、优化后DDL

  1. CREATE TABLE `tbl_order_snapshot` (
  2. `order_id` bigint(16) NOT NULL COMMENT '订单id',
  3. `server_id` int(10) NOT NULL COMMENT '租赁商id',
  4. `item_id` char(20) NOT NULL COMMENT '产品id',
  5. `item_num` int(5) DEFAULT NULL COMMENT '订单产品数',
  6. `rental_money` decimal(11,2) DEFAULT NULL COMMENT '订单总租金',
  7. `deposit` decimal(11,2) DEFAULT NULL COMMENT '押金',
  8. `scheme_title` varchar(100) DEFAULT NULL COMMENT '产品标题',
  9. `model` varchar(100) DEFAULT NULL COMMENT '型号',
  10. `brand_name` varchar(100) DEFAULT NULL COMMENT '品牌中文名',
  11. `sku_name` varchar(100) DEFAULT NULL COMMENT '套餐名字',
  12. `buyout` decimal(11,2) DEFAULT NULL COMMENT '买断价格',
  13. `new_old_tag` tinyint(1) DEFAULT NULL COMMENT '新旧标签id',
  14. `good_choice_tag` tinyint(1) DEFAULT NULL COMMENT '精选标签',
  15. `time_start` int(10) DEFAULT NULL COMMENT '开始租期',
  16. `time_end` int(10) DEFAULT NULL COMMENT '结束租期',
  17. `created_at` int(10) NOT NULL COMMENT '快照时间',
  18. PRIMARY KEY (`order_id`) USING BTREE
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. CREATE TABLE `tbl_order_snapshot_extra` (
  2. `order_id` bigint(16) NOT NULL COMMENT '订单id',
  3. `images` varchar(500) DEFAULT NULL COMMENT '封面图片',
  4. `sub_title` varchar(100) DEFAULT NULL COMMENT '推广标题',
  5. `rental_data` varchar(500) DEFAULT NULL COMMENT '租金设置',
  6. `machine_desc` text COMMENT '机器描述',
  7. `detail_params` text COMMENT '规格参数',
  8. PRIMARY KEY (`order_id`) USING BTREE
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;