.7及之前版本,最大段数为1024,5.7(含)之后版本,最大段数为8196(经测试有效)
(3)查询各个分区的数据
可以自己插入测试表数据,看看效果
select
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
from information_schema.partitions where
table_schema = schema()
and table_name='zy_sjgl';
(4)分区操作
清除分区中的数据。分区仍然存在。它与表是同一个概念。清理数据:
alter table zy_sjgl truncate partition p20221101;
删除分区。直接删除分区,和drop table一样:
alter table bm_scenes_data_reminder drop partition p20210104;
添加分区。这里有个要点,添加新分区。如果最后一个分区有max,简单来说就是新增加的分区小于,无法插在中间,只能插在最后。如果有比它大的分区,比如要插入分区5,已经有分区6了,插入失败,需要删除6,再创建5和6一起。添加新分区语句:
先删:
ALTER TABLE zy_sjgl DROP PARTITION px;
后建:
ALTER TABLE zy_sjgl ADD partition (partition p20230701 values less than ('2023-07-01'));
ALTER TABLE zy_sjgl ADD partition (partition px values less than maxvalue);
3.mysql表被锁定,获取表锁
mysql表被锁住了,重启了服务器,表正在插入数据,被锁住了,通过检查发现:for table lock
有时通过:show;无法找到,可以尝试以下方法:
select * from performance_schema.events_statements_current
然后再kill id
4. msyql查询增加序列号
用户导出的csv或者excel需要带序列号,方便查看。方法是:前面用(@i:=@i+1) AS '序列号',后面跟(@i:=0) AS from。需要特别说明。sql里面如果有序列号,要放在外面,不然序列号会断掉。简单来说,比如有1,2,3一组,导入时这组只剩下1个,序列号就会跳转。用一个包然后排序就行了。
select (@i:=@i+1) AS '序号', t2.* from (select
*
from zy_sjgl t1
group by t1.SJGL_SJC
order by t1.SJGL_SJC asc) t2,(SELECT @i:=0) AS itable
5.MySQL服务器参数配置
服务器参数优化可能并不适合所有人,参数配置在my文件中:
table_open_cache=5120
max_allowed_packet=1024M;
innodb_buffer_pool_size=8192M
innodb_buffer_pool_instances=8
innodb_log_files_in_group=3
innodb_lock_wait_timeout=120
thread_cache_size=300
bulk_insert_buffer_size=1024M
ize,缓冲池大小,类型数据库,如果内存足够,则使用较大的一个;
- - 添加
类型,转换为日期格式,业务需求是按天统计每天的温差,数据库中该类型的时间戳可以转换为(t1.,'%Y-%m-%d')。
str_to_date(t1.SJGL_SJC,'%Y-%m-%d') >= str_to_date('2022-11-01 00:00:00','%Y-%m-%d')
and str_to_date(t1.SJGL_SJC,'%Y-%m-%d') <= str_to_date('2022-11-10 10:11:00','%Y-%m-%d')
扫一扫在手机端查看
-
Tags : mysql数据表操作记录和查询总结
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。