mysql 优化分表 存储引擎

分表

--创建key分表
create table user1(
 uid int auto_increment primary key,
 uname varchar(20) not null
)engine=myisam default charset=utf8
partition by key(uid) partitions 3;

--创建hash分表
create table user2(
 uid int auto_increment primary key,
 uname varchar(20) not null
)engine=myisam default charset=utf8
partition by hash(uid) partitions 3;

--创建range分表
create table user3(
 uid int auto_increment,
 uname varchar(20) not null,
 brithday date not null default '0000-00-00',
 primary key(uid,brithday)
)engine=myisam default charset=utf8
partition by range(year(brithday))(
 partition 80hou values less than (1990),
 partition 90hou values less than (2000),
 partition 00hou values less than (2010)
);

--创建list分表
create table goods(
 gid int auto_increment,
 gname varchar(20) not null,
 cid int not null,
 primary key(gid,cid)
)engine=myisam default charset=utf8
partition by list(cid)(
 partition g1 values in(1),
 partition g2 values in(2,3),
 partition g3 values in(4,5,6)
);

--增加key/hash模式分区
--格式: alter table 表名 add partition partitions 数量
alter table user1 add partition partitions 2;
alter table user2 add partition partitions 2;

--删除key/hsah模式分区
--格式: alter table 表名 coalesce parition 数量
alter table user1 coalesce partition 2;
alter table user2 coalesce partition 2;

--增加range模式分区
--格式: alter table 表名 add partition ( partition 分区名 values less than (值))
alter table user3 add partition(
 partition 10hou values less than (2020)
)
--删除range模式分区
--格式:alter table 表名 drop partition 分区名
alter table user3 drop partition 10hou;

--增加list模式分区
--格式:alter table 表名 add partition ( partition 分区名 values in(值))
alter table goods add partition(
 partition g4 values in (7)
)
--删除list模式分区
--格式:alter table 表名 drop partition 分区名
alter table goods drop partition g4;

存储引擎

--查询存储引擎
show engines;

--查询库中所有表的状态
--格式:show table status from 库名;
show create table status from a68;

--查询表创建语句
--格式:show create table 表名
show create table tp_user;


--创建基于MyISAM引擎的表
create table user1(
 uid int auto_increment primary key,
 uname varchar(20) not null
)engine=myisam default charset=utf8;

--创建基于InnoDB引擎的表
create table user2(
 uid int auto_increment primary key,
 uname varchar(20) not null
)engine=innodb default charset=utf8;

--查询InnoDB存储变量
show variables like 'innodb_file%'
set global innedb_file_per_table=1

posted on   何苦->  阅读(32)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示