一、查询mysql表是否为分区表:可以查看表具有哪几个分区、分区的方法、分区中数据的记录数等信息
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站设计、长乐网络推广、微信小程序定制开发、长乐网络营销、长乐企业策划、长乐品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供长乐建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION
FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='xw_coobill_order';
二、查询表有多少个分区
SELECT TABLE_NAME, COUNT(*) AS CNT
FROM information_schema.PARTITIONS WHERE PARTITION_NAME IS NOT NULL
GROUP BY TABLE_NAME ORDER BY CNT DESC LIMIT 50;
三、分析执行语句
explain partitions select * from range_datetime where hiredate = '20151207124503' and hiredate='20151210111230';
四、分区管理
常规HASH和线性HASH的增加收缩分区的原理是一样的。增加和收缩分区后原来的数据会根据现有的分区数量重新分布。HASH分区不能删除分区,所以不能使用DROP PARTITION操作进行分区删除操作;
只能通过ALTER TABLE ... COALESCE PARTITION num来合并分区,这里的num是减去的分区数量;
可以通过ALTER TABLE ... ADD PARTITION PARTITIONS num来增加分区,这里是null是在原先基础上再增加的分区数量。
select s.num1,t.num2 from
(select count(*) num1 from student) s,
(select count(*) num2 from teacher) t;
分别用两个子查询查出两个标的记录,即临时表,然后列出来就可以。有问题再留言
当业务上按照月份分表,但是前端h5需要分页展示,小伙伴们不知有没有遇到这个这个需求最后怎么完成的。
我这里想了一个解决思路,可能还不完善,希望能抛转引玉。
1、入参pageNo 为页号码,如果为1那么就是第一页。pageSize 可以是入参也可定死,这里定死10条。Limit 是数据偏移标记,根据入参pageNo 计算出来的,Limit=(pageNo-1)*pageSize。假设A表有41条数据符合,B表有51条数据符合,如下图。
有几种种情况 1.如果limitA表41条 那么需要从A表中取数据,(1)如果Limit+pageSizeCount直接获取数据即可(2)如果Limit+pageSizeCount,那么需要从A 表取部分数据从B表取一部分数据。
1.如果limitA表41条 那么需要从B表取数据,如果B数据依然不足,那么重复以上的步骤。如下图