SELECT \* FROM
INFORMATION\_SCHEMA.partitions
WHERE
TABLE\_SCHEMA = schema()
AND TABLE\_NAME='logo\_logo\_history';
SELECT \* FROM `logo\_logo\_history` PARTITION(p201904) where username='SnPlHJiV';
*****
創建表
CREATE TABLE `logo\_logo\_history` (
`id` int(11) NOT NULL AUTO\_INCREMENT,
`logo\_id` int(11) NOT NULL DEFAULT '0',
`title` varchar(45) NOT NULL DEFAULT '' COMMENT '主標題',
`slogan` varchar(45) NOT NULL DEFAULT '' COMMENT '副標題',
`industry\_id` tinyint(45) NOT NULL DEFAULT '0' COMMENT '0-互聯網 1-電子商務 2-餐飲食品 3-金融 4-電子器械 5-房地產 6-醫療健康 7-教育培訓 8-法律 9-文化創意 10-農林畜牧 11-其他行業',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
`color\_num` varchar(255) NOT NULL DEFAULT '' COMMENT '色系 0-綠色 1-橙色 2-藍色 3-黃色 4-黑白 5-咖色 6-金色 7-紅色 8-紫色 9-不限制',
`style\_ids` varchar(45) NOT NULL DEFAULT '' COMMENT '風格 (保留字段)',
`creat\_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',
`show\_path` varchar(255) NOT NULL DEFAULT '' COMMENT '圖標展示的png path 做base64處理',
`oss\_path` varchar(255) NOT NULL DEFAULT '' COMMENT '真正的png地址',
`proto\_pay\_level` varchar(10) NOT NULL DEFAULT '' COMMENT 'ai傳過來數據(free三級 basic二級 expert一級)',
`proto\_id` varchar(255) NOT NULL DEFAULT '' COMMENT '對應mongo版型庫的id',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0-版型未被使用 1-版型正在被下單 鎖定 2-版型已被使用所以該素材不能用了',
`mid` int(11) NOT NULL COMMENT '用戶id',
`is\_register` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否被下單(無關支付) 0---沒有 1--有',
`is\_buy` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0--未被買 1--該logo已被買',
`is\_collect` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0--未被收藏 1--已被收藏',
`is\_share` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否分享',
`batch\_number` varchar(255) NOT NULL DEFAULT '' COMMENT 'logo生成頁的鏈接尾數',
`bottom\_color` varchar(10) NOT NULL DEFAULT '' COMMENT '底色',
`batch\_page` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'logo生成頁 第幾頁',
`collection` varchar(255) NOT NULL DEFAULT '' COMMENT '素材的數據庫名',
`proto\_down` tinyint(4) NOT NULL DEFAULT '0' COMMENT '素材原型是否下架 0 不用下架 1--下架 ',
`proto\_lock` tinyint(4) NOT NULL DEFAULT '0' COMMENT '素材是否被鎖住 (被添加進訂單 未支付) 0 --- 未鎖 1--已鎖',
`delete` int(2) NOT NULL DEFAULT '0' COMMENT '0未刪除,1已刪除',
`banxing` varchar(255) NOT NULL DEFAULT '' COMMENT '版型',
`zan` int(11) NOT NULL DEFAULT '0' COMMENT '點贊數',
`slogen\_font` varchar(255) DEFAULT NULL COMMENT '副標題字體信息',
`title\_font` varchar(255) DEFAULT NULL COMMENT '主標題的字體信息',
`update\_time` int(10) NOT NULL DEFAULT '0' COMMENT '更新時間',
`is\_history\_logo` tinyint(4) DEFAULT '0' COMMENT '是否是歷史logo',
`back\_color` tinyint(2) DEFAULT NULL COMMENT '是否背景色',
`is\_case` tinyint(2) DEFAULT '0' COMMENT '0 不是案例 1是案例',
`czy\_file\_id` int(11) DEFAULT NULL COMMENT '存證云hash對應的file\_id',
`file\_hash\_code` varchar(255) DEFAULT NULL COMMENT '文件哈希值',
`width` float(10,2) DEFAULT NULL COMMENT '寬',
`height` float(10,2) DEFAULT NULL COMMENT '高',
`insert\_time` int(11) NOT NULL DEFAULT '0' COMMENT '寫入時間',
PRIMARY KEY (`id`,`creat\_time`),
KEY `idx\_logo\_id` (`logo\_id`) USING BTREE,
KEY `idx\_mid` (`mid`) USING BTREE,
KEY `idx\_is\_buy` (`is\_buy`) USING BTREE,
KEY `idx\_is\_collect` (`is\_collect`) USING BTREE,
KEY `idx\_proto\_id` (`proto\_id`) USING BTREE,
KEY `idx\_batch\_number` (`batch\_number`) USING BTREE,
KEY `idx\_collection` (`collection`) USING BTREE,
KEY `idx\_is\_register` (`is\_register`) USING BTREE,
KEY `idx\_is\_share` (`is\_share`) USING BTREE,
KEY `idx\_is\_case` (`is\_case`) USING BTREE,
KEY `idx\_creat\_time` (`creat\_time`) USING BTREE,
KEY `idx\_title` (`title`) USING BTREE,
KEY `idx\_delete` (`delete`) USING BTREE
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='logo設計歸檔庫'
PARTITION BY RANGE (`creat\_time`) (
PARTITION p201809 VALUES LESS THAN (1538323200),
PARTITION p201810 VALUES LESS THAN (1541001600),
PARTITION p201811 VALUES LESS THAN (1543593600),
PARTITION p201812 VALUES LESS THAN (1546272000),
PARTITION p201901 VALUES LESS THAN (1548950400),
PARTITION p201902 VALUES LESS THAN (1551369600),
PARTITION p201903 VALUES LESS THAN (1554048000),
PARTITION p201904 VALUES LESS THAN (1556640000),
PARTITION p201905 VALUES LESS THAN (1559318400),
PARTITION p201906 VALUES LESS THAN (1561910400),
PARTITION p201907 VALUES LESS THAN (1564588800),
PARTITION p201908 VALUES LESS THAN (1567267200)
);
*****
開始
delimiter $$
CREATE EVENT `logo\_history\_job`
ON SCHEDULE
EVERY 1 MONTH STARTS '2018-09-01 01:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '每個月對表進行下個月分區'
DO BEGIN
SET @part\_name = CONCAT("p", DATE\_FORMAT(DATE\_ADD(NOW(), INTERVAL 1 MONTH), '%Y%m'));
SET @less\_time = UNIX\_TIMESTAMP(DATE\_FORMAT(DATE\_ADD(NOW(), INTERVAL 2 MONTH), '%Y-%m-01 00:00:00'));
SET @part\_create = CONCAT("ALTER TABLE `logo\_history` PARTITION BY RANGE COLUMNS (`cretat\_time`) (PARTITION ", @part\_name," VALUES LESS THAN (", @less\_time,"))");
PREPARE part\_create FROM @part\_create;
EXECUTE part\_create;
END$$
delimiter ;
ALTER TABLE `logo\_history` PARTITION BY RANGE COLUMNS (`cretat\_time`) (PARTITION p201909 VALUES LESS THAN (1569859200))
CREATE TABLE T1 (
id int(8) NOT NULL AUTO\_INCREMENT,
createtime datetime NOT NULL,
PRIMARY KEY (id,createtime)
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8
PARTITION BY RANGE(TO\_DAYS (createtime))
(
PARTITION p0 VALUES LESS THAN (TO\_DAYS('201901')),
PARTITION p1 VALUES LESS THAN (TO\_DAYS('2010-05-01')),
PARTITION p2 VALUES LESS THAN (TO\_DAYS('2010-05-15')),
PARTITION p3 VALUES LESS THAN (TO\_DAYS('2010-05-31')),
PARTITION p4 VALUES LESS THAN (TO\_DAYS('2010-06-15')),
PARTITION p19 VALUES LESS ThAN MAXVALUE);
truncate `tbl\_user\_no\_part`
CREATE TABLE `tbl\_user\_no\_part` (
`id` int(11) NOT NULL AUTO\_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
`age` tinyint(4) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`create\_time` int(11) DEFAULT NULL COMMENT '創建時間',
PRIMARY KEY (`id`,`create\_time`)
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8;
PARTITION BY RANGE (create\_time) (
PARTITION p201901 VALUES LESS THAN (1548950400),
PARTITION p201902 VALUES LESS THAN (1551369600),
PARTITION p201903 VALUES LESS THAN (1554048000),
PARTITION p201904 VALUES LESS THAN (1556640000),
PARTITION p201905 VALUES LESS THAN (1559318400),
PARTITION p201906 VALUES LESS THAN (1561910400),
PARTITION p201907 VALUES LESS THAN (1564588800)
);
\-- 修改mysql默認的結束符號,默認是分號;但是在函數和存儲過程中會使用到分號導致解析不正確
delimiter $$
\-- 隨機生成一個指定長度的字符串
create function rand\_string(n int) returns varchar(255)
begin
\# 定義三個變量
declare chars\_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
declare return\_str varchar(255) default '';
declare i int default 0;
while i < n do
set return\_str = concat(return\_str, substring(chars\_str, floor(1+rand()\*52), 1));
set i = i + 1;
end while;
return return\_str;
end $$
\-- 創建插入的存儲過程
create procedure insert\_user(in start int(10), in max\_num int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into tbl\_user\_no\_part values ((start+i) ,rand\_string(8), concat(rand\_string(6), '@random.com'), 1+FLOOR(RAND()\*100), 3, unix\_timestamp(CONCAT('2019-0',FLOOR(RAND()\*6+1),'-', FLOOR(RAND() \* 27 + 1), ' ', FLOOR(RAND() \* 24), ':', FLOOR(RAND() \* 59), ':', FLOOR(RAND() \* 59))));
until i = max\_num
end repeat;
commit;
end $$
\-- 將命令結束符修改回來
delimiter ;
\-- 調用存儲過程,插入500萬數據,需要等待一會時間,等待執行完成
call insert\_user(1,10);
CREATE TABLE `tbl\_user\_no\_part` (
`id` int(11) NOT NULL AUTO\_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
`age` tinyint(4) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`create\_time` int(11) NOT NULL COMMENT '創建時間',
PRIMARY KEY (`id`,`create\_time`),
KEY `idx\_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE (create\_time) (
PARTITION p201901 VALUES LESS THAN (1548950400),
PARTITION p201902 VALUES LESS THAN (1551369600),
PARTITION p201903 VALUES LESS THAN (1554048000),
PARTITION p201904 VALUES LESS THAN (1556640000),
PARTITION p201905 VALUES LESS THAN (1559318400),
PARTITION p201906 VALUES LESS THAN (1561910400),
PARTITION p201907 VALUES LESS THAN (1564588800)
);
//查詢分區有多少個
SELECT \* FROM
INFORMATION\_SCHEMA.partitions
WHERE
TABLE\_SCHEMA = schema()
AND TABLE\_NAME='tbl\_user\_no\_part';
SELECT \* FROM `tbl\_user\_no\_part` PARTITION(p201904) where username='SnPlHJiV';
*****
CREATE TABLE `tbl\_user\_no\_part` (
`id` int(11) NOT NULL AUTO\_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
`age` tinyint(4) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`create\_time` timestamp DEFAULT CURRENT\_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8;
\-- 修改mysql默認的結束符號,默認是分號;但是在函數和存儲過程中會使用到分號導致解析不正確
delimiter $$
\-- 隨機生成一個指定長度的字符串
create function rand\_string(n int) returns varchar(255)
begin
\# 定義三個變量
declare chars\_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
declare return\_str varchar(255) default '';
declare i int default 0;
while i < n do
set return\_str = concat(return\_str, substring(chars\_str, floor(1+rand()\*52), 1));
set i = i + 1;
end while;
return return\_str;
end $$
\-- 創建插入的存儲過程
create procedure insert\_user(in start int(10), in max\_num int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into tbl\_user\_no\_part values ((start+i) ,rand\_string(8), concat(rand\_string(6), '@random.com'), 1+FLOOR(RAND()\*100), 3, now());
until i = max\_num
end repeat;
commit;
end $$
\-- 將命令結束符修改回來
delimiter ;
\-- 調用存儲過程,插入500萬數據,需要等待一會時間,等待執行完成
call insert\_user(100001,5000000);
\---------------------
作者:vbirdbest
來源:CSDN
原文:https://blog.csdn.net/vbirdbest/article/details/82461109
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
alter table user\_test PARTITION BY RANGE (age) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p2 VALUES LESS THAN (50),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
ALTER TABLE 表名 DROP PARTITION 分區名;
//查看分區 數據
explain partitions select \* from user\_test;
//查詢個個分區的具體情況
SELECT \* FROM
INFORMATION\_SCHEMA.partitions
WHERE
TABLE\_SCHEMA = schema()
AND TABLE\_NAME='user\_test';

table\_rows 分區的數量
SELECT \* FROM
INFORMATION\_SCHEMA.partitions
WHERE
TABLE\_SCHEMA = schema()
AND TABLE\_NAME='tbl\_user\_no\_part';
SELECT \* FROM `tbl\_user\_no\_part` PARTITION(p201904) where username='SnPlHJiV';
//測試例子
alter table user\_test PARTITION BY RANGE (age) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p2 VALUES LESS THAN (30),
PARTITION p3 VALUES LESS THAN (40),
PARTITION p4 VALUES LESS THAN (50),
PARTITION p5 VALUES LESS THAN MAXVALUE
);
刪除分區
ALTER TABLE user\_test DROP PARTITION p0;
ALTER TABLE user\_test DROP PARTITION p1;
ALTER TABLE user\_test DROP PARTITION p2;
CREATE TABLE `user\_test` (
`id` int(11) NOT NULL AUTO\_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
`age` tinyint(4) NOT NULL DEFAULT '0',
`type` int(11) DEFAULT NULL,
`create\_time` timestamp NOT NULL DEFAULT CURRENT\_TIMESTAMP,
PRIMARY KEY (`id`,`age`),
KEY `username` (`username`) USING BTREE
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8;
drop table user\_test;
call insert\_user\_test(1,2000000);
CREATE TABLE T1 (
? ? ?id int(8) NOT NULL AUTO\_INCREMENT,
? ? ?createtime datetime NOT NULL,
? ? ? PRIMARY KEY (id,createtime)
) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=utf8
PARTITION BY RANGE(TO\_DAYS (createtime))
(
PARTITION p0 VALUES LESS THAN (TO\_DAYS('2010-04-15')),
PARTITION p1 VALUES LESS THAN (TO\_DAYS('2010-05-01')),
PARTITION p2 VALUES LESS THAN (TO\_DAYS('2010-05-15')),
PARTITION p3 VALUES LESS THAN (TO\_DAYS('2010-05-31')),
PARTITION p4 VALUES LESS THAN (TO\_DAYS('2010-06-15')),
PARTITION p19 VALUES LESS ThAN ?MAXVALUE);
SELECT count(\*) FROM `user\_test` WHERE age >10 and age < 20;
- 空白目錄
- containerd
- php
- php常用函數
- 點語法
- 依賴注入
- 反射
- 迭代器和yield
- array_walk
- str_replace
- openssl_decrypt
- array_merge
- 閉包
- 深拷貝與淺拷貝
- 面向對象
- 魔術方法
- __invoke
- __isset 和 __unset
- __clone
- 常用知識點
- 訪問權限
- 抽象類
- 多態
- php框架
- tp
- tp3
- tp5
- job
- laravel
- 中間件
- laravel閉包
- symfony
- 小工具
- phpexcel
- xlswrite
- 設計模式
- 事件event
- 里氏替換原則
- 借鑒
- RESTful API
- 環境安裝
- 編譯安裝
- 編譯安裝后擴展補充
- php小記錄
- php-fpm
- 容器(Container)
- composer
- composer踩坑
- mysql
- 基礎知識
- 外鍵
- 索引
- 觸發器
- 定時器
- 分表
- 分區
- 連接查詢
- 事務
- 鎖機制
- 視圖
- 存儲過程
- 查詢
- 字符截取
- 批量修改表名(前綴)
- explain
- when_case
- pdo
- mysql優化
- 主從復制
- 權限分配
- 實用例子
- 查詢用戶
- 常見問題
- 5.7group by問題
- 遠程鏈接慢問題
- 查看進程
- 遠程訪問
- 常用小記
- mysqldump
- 備份還原
- 系統盤遷移數據盤
- 安裝sql
- 安裝MariaDB
- docker
- 安裝docker
- 配置centos開發環境
- docker運行程序
- rabbitmq
- 刪除無用鏡像
- 解決Centos firewalld導致的docker容器內無法訪問外網,無法訪問其他容器(host沒辦法解析)
- docker-compose
- docker-selenium
- ports 配置
- docker-compose-settings
- 安裝
- docker-compose常用配置
- docker常用命令
- build
- docker-hub加速
- docker-run
- Dockerfile
- apt-get update 無法升級
- 阿里打標簽
- 打包流程
- docker-network
- ufw 允許 docker 容器聯網
- 安裝containerd
- linux
- centos7
- 常用語法
- chmod
- chown
- find
- grep
- /etc/passwd
- chattr
- In軟連接
- 文件目錄大小
- xargs
- 管道用法
- top
- free
- 端口占用
- 壓縮解壓
- tar
- gzip
- zip
- 2>&1
- 環境變量
- 服務管理
- systemctl
- sed
- shell腳本
- time
- journal
- history
- linux-set
- linux-curl
- cp
- umask
- mkdir
- http狀態碼
- awk
- lsof
- crontab
- supervisor
- 常用命令匯總
- 用戶權限
- 普通用戶添加sudo權限
- sudo su
- 添加用戶
- 查看用戶信息
- 修改用戶信息
- 特殊權限
- 系統命令
- 常用小技巧
- vim小技巧
- 防火墻
- 常用規則
- iptables
- 磁盤清理
- 分區掛載
- linux-sh
- tmux
- 多命令執行
- 常用工具
- telnet
- ip轉發
- nohup
- watch
- dig
- 查看磁盤IO
- ssh
- 修改ssh端口
- ssh免密登錄
- 配置文件
- 公鑰分發
- xsync
- 國內鏡像站
- github加速
- 測網速
- 網卡
- 清理日志備份
- 配置sftp
- shell
- rpm
- 安全
- 安裝openssl
- 安裝openssh
- 禁用selinux和防火墻
- lanp環境安裝
- versionTool
- git
- git基本用法
- Gogs搭建
- git鉤子
- git的習慣配置
- phpStorm設置git bash
- git bash 設置代理
- gitignore 不起作用的解決辦法
- gitea搭建
- 同步主干到fork
- git修改地址
- svn
- svn基本操作
- svn 鉤子應用
- svn多版本操作
- Go語言
- Go語言基礎
- 安裝環境
- linux安裝
- window安裝
- 工具使用教程
- linux終端分屏Screen
- keepass 帳號密碼管理
- phpstorm
- 去掉window換行符
- php_cs
- 自定義快捷模塊
- phpstorm快捷鍵
- curl
- 正則
- 設計架構
- 設計模式的六大原則
- 計算機基礎
- TCP三次握手
- OSI7層
- http狀態返回碼
- 前端框架
- Vue
- Angular
- React
- node
- 服務端渲染(SSR)
- MVVM
- nuxt
- pm2
- js
- Promise
- es6
- 常用站點
- 工具類
- 學習類
- ps常用命令
- nginx
- 緩存
- 配置
- TCP
- 常用配置
- ng優先級
- vhost注意點
- nginx第一層驗證
- 轉發(跨域問題)
- 404
- nginx日志格式化
- 重啟腳本
- 寶塔禁用境外ip訪問
- ng統計
- ng編譯安裝
- 防盜鏈
- 技術相關了解
- ddos
- xss
- mysql防注入
- csrf攻擊
- 郵箱系統原理
- DNS
- python
- Selenium
- 微信
- 公眾號
- 公眾號配置
- 用戶授權
- 小程序
- 公有云
- 華為云
- JAVA
- springboot
- windows
- service
- WSL
- 目錄遷移
- wsl2 踩坑
- NoSql
- mongodb
- 安裝mongodb
- redis
- redis-windows
- redis-linux
- openstack
- ====副業====
- 擼茅臺
- 網絡
- 單位換算
- DB
- clickhouse
- mac