首页 > 数据库 >mysql 优化分表 存储引擎

mysql 优化分表 存储引擎

时间:2022-11-12 21:34:33浏览次数:43  
标签:存储 -- partition values key mysql 分表 table alter

分表

--创建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

标签:存储,--,partition,values,key,mysql,分表,table,alter
From: https://www.cnblogs.com/fuqian/p/16884711.html

相关文章

  • MySQL操作练习:library
    查询前请创建对应的数据库和表:createdatabases`library`;uselibrary;createtablebook(bnochar(20)notnullprimarykey,bnamevarchar(50),aut......
  • 22-MySQL架构与性能优化
    架构:C/SConnectors:连接器可供NativeCAPI、JDBC、ODBC、NET、PHP、Perl、Python、Ruby、Cobol等连接mysql;站在编程角度可以理解为连入数据库管理系统的驱动,站在mysql角度......
  • Mysql中REPLACE INTO用法,判断数据是否存在,如果不存在,则插入,如果存在,则先删除此行数据,
    MySQLreplaceinto用法在向表中插入数据的时候,经常遇到这样的情况:1.首先判断数据是否存在;2.如果不存在,则插入;3.如果存在,则先删除后再插入新数据行。MySQL中实现这......
  • mysql系列14---docker容器下mysql数据库还原与备份
    一、数据库定时备份1、编写mysql在docker容器中备份的shell脚本:#!/bin/bash#docker启动的mysql备份mysql_user="root"#数据库密码,注意自行修改mysql_password="1234......
  • 成功进入mysql后无法对数据库进行操作【mysql】You must reset your password using A
    安装完mysql之后,登陆以后,不管运行任何命令,总是提示这个mysql>showdatabases;ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforee......
  • linux下安装MySQL8.0
    linux下安装MySQL8.0本次安装演示版本为8.0.281、准备安装目录及其安装包cd/usr/local/mkdirmysqlcdmysql#使用wget下载mysql安装包(如果下载慢,可自行提前准备安......
  • MySQL命令语法
    目录MySQL命令/语法启动MySQL服务退出MySQL服务查看MySQL中有哪些数据库选择需要操作的数据库创建数据库查看当前使用的数据库查看数据库中有哪些表查看表结构查询所有字......
  • MySQL 8.0.30动态redo log初探
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。本文来源:原创投稿;作者:YeJinrong/叶金荣MySQ......
  • 6大数据库,挖掘7种业务场景的存储更优解无密还似旧时游上苑
    download:6大数据库,挖掘7种业务场景的存储更优解无密还似旧时游上苑操作系统和应用程序破绽评价什么是破绽评价破绽管理的目的是一直控制IT根底架构风险。破绽评价过......
  • 秋天的第一个存储过程
    问题描述:创建性能监测表。从数据库中找出num_rows<=3,或者统计信息被锁定的表;并且把这些表count(*)的历史峰值,记录下来。使用定时任务加上存储过程来实现这个方式,先筛选符......