分区表

Mysql分区表及自动创建分区Partition

匿名 (未验证) 提交于 2019-12-02 22:06:11
Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘自增主键(guid)‘, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间‘, `partition_key` int(8) NOT NULL COMMENT ‘分区键(格式:yyyyMMdd)‘, PRIMARY KEY (`id`,`partition_key`), UNIQUE KEY `id_UNIQUE` (`id`,`partition_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci PARTITION BY RANGE (partition_key) (PARTITION p0 VALUES LESS THAN (20180619) ENGINE = InnoDB, PARTITION p20180619 VALUES LESS THAN (20180620) ENGINE = InnoDB, PARTITION p20180621 VALUES

Mysql数据库开发设计原则

匿名 (未验证) 提交于 2019-12-02 22:06:11
结合日常开发生产,总结Mysql数据库开发设计原则如下: 尽量不在数据库做运算 在mysql中尽量不要使用如:md5()、Order by Rand()等这类运算函数 尽量控制单表数据量 单表数据量过大后会影响数据查询效率 2.1单表数据量预估: ①. 纯 INT 不超过 1000W ②. CHAR 不超过 500W 2.2同时要尽量做好合理的分表: 通过 USERID 来分表(根据 ID 区间分表) 按 DATE 分表(按天、周、月分表) 按 AREA 分表(省、市、区分表) 2.3分区表的适用场景主要有: ① 表非常大,无法全部存在内存,或者只在表的最后有热点数据,其他都是历史数据; ② 分区表的数据更易维护,可以对独立的分区进行独立的操作; ③ 分区表的数据可以分布在不同的机器上,从而高效使用资源; ④ 可以使用分区表来避免某些特殊的瓶颈; ⑤ 可以备份和恢复独立的分区。 避免使用NULL字段 在数据库表字段设计的时候尽量都加上NOT NULL DEFAULT ‘’ 3.1 很难进行查询优化 3.2 NULL列加索引,需要额外空间 3.3 含NULL复合索引无效 不在数据库里存图片 如果将图片全部存在数据库,将使得数据库体积变大,会造成读写速度变慢。 图片存数据库的弊端: 对数据库的读/写的速度永远都赶不上文件系统处理的速度 数据库备份变的巨大,越来越耗时间

mysql使用 分区表使用,常用sql

匿名 (未验证) 提交于 2019-12-02 21:59:42
版权声明:本文为博主原创文章,未经博主允许不得转载。博主地址:http://blog.csdn.net/freewebsys https://blog.csdn.net/freewebsys/article/details/84839478 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/84839478 未经博主允许不得转载。 博主地址是: http://blog.csdn.net/freewebsys 1,关于分区 也就是说,对于原表分区后,对于应用层来说可以不做变化,我们无需改变原有的SQL语句,相当于MySQL帮我们实现了传统分表后的SQL中间件,当然,MySQL的分区表的实现要复杂很多。 另外,在创建分区时可以指定分区的索引文件和数据文件的存储位置,所以可以把数据表的数据分布在不同的物理设备上,从而高效地利用多个硬件设备。 一些限制: 1.在5.6.7之前的版本,一个表最多有1024个分区;从5.6.7开始,一个表最多可以有8192个分区。 2.分区表中无法使用外键约束。 3.主表的所有唯一索引列(包括主键)都必须包含分区字段。MySQL官方文档中写的是: All columns used in the partitioning expression for a partitioned table

故障处理:磁盘扩容出错:e2fsck: Bad magic number in super-block while trying to open /dev/vdb1

匿名 (未验证) 提交于 2019-12-02 21:59:42
按照 阿里云官网 教程对 云服务器进行磁盘扩容, 使用fdisk重新分区,最后使用e2fsck和resize2fs来完成文件 系统层面的扩容 在执行“e2fsck -f /dev/vdb1”命令时报错,如果你的问题和下面的错误一样,可以接着往下看: [root@aliyunsrv ~]# e2fsck -f /dev/vdb1 e2fsck 1.41.12 (17-May-2010) e2fsck: Superblock invalid, trying backup blocks... e2fsck: Bad magic number in super-block while trying to open /dev/vdb1 The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:

标识分区------linux

匿名 (未验证) 提交于 2019-12-02 21:56:30
标识分区 添加一块80GB的新硬盘 /dev/sdb 建立MBR分区表,划分一个1GB的主分区 将此分区格式化为ext4文件系统 设置/识别分区属性,为分区/dev/sdb1设置卷标 disk2part1 删除刚设置的卷标 查看此分区的UUID标识信息 检查此分区是否支持ACL、有多少个i节点 卷标起到标识作用,挂载时可以利用卷标挂载。这样避免出错和重复。 UUID在格式化时产生,是一个唯一标识。 利用tune2fs命令可以查看分区详细属性。 实现此案例需要按照如下步骤进行。 步骤一:添加一块80GB的新硬盘 /dev/sdb 命令操作如下所示: [root@localhost ~]# ls /dev/sdb //添加第二块硬盘并识别 /dev/sdb 步骤二:建立MBR分区表,划分一个1GB的主分区 命令操作如下所示: [root@localhost ~]# parted /dev/sdb //为了降低难度,采用交互方式建立分区表 GNU Parted 2.1 使用 /dev/sdb Welcome to GNU Parted! Type ‘help’ to view a list of commands. (parted) //可以连续两次Tab键,查看可以执行命令有哪些 align-check mkfs mktable quit select version check

Archlinux安装总结

匿名 (未验证) 提交于 2019-12-02 21:56:30
Archlinux安装总结 一、引导 1、BIOS与UEFI root@archiso ~ # ls /sys/firmware/efi/efivars ls: cannot access '/sys/firmware/efi/efivars': No such file or directory 出现“No such file or directory”表明为BIOS引导。 BIOS 是英文"Basic Input Output System"缩写,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 ps :BIOS无法识别GPT分区,是个误区 BIOS识别硬盘本身和采取何种分区格式方式是没有任何关系。无论MBR分区还是GPT,只有在访问数据加载读写进程之后这些分区方式才有意义,不然对于BIOS来说它就是一块硬盘,BIOS引导是通过读取MBR(主引导记录,位于硬盘的第一个数据块)的内容,这里要明确“MBR”和“MBR分区方式”是两个不同的概念,通过GPR分区方式后,也会在硬盘第一个数据块中读取引导记录,这个块被成为“PMBR”。 2、MBR分区和GPT分区 MBR分区 "Master Boot Record"缩写,分区信息保存到磁盘的第一个扇区(MBR扇区

高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区

眉间皱痕 提交于 2019-12-02 14:36:21
一、MySQL分区表操作 1、定义 :数据库表分区是数据库基本设计规范之一,分区表在物理上表现为多个文件,在逻辑上表现为一个表; 2、表分区的弊端 : 要谨慎选择分区键,错误的操作可能导致跨分区查询效率降低。 建议 采用物理分表的方式管理大数据。 3、确认MySQL服务器是否支持分区表 使用 SHOW PLUGINS;在mysql命令行查看是否具有分区表的功能: ​ 查询结果中的"partition | ACTIVE | STORAGE ENGINE | NULL | GPL "这一行代表当前数据库可以进行数据库分区表操作。 4、普通数据库表的物理结构与分区表的物理结构的区别: ​ 左边为普通表的物理结构,右边为分区后的数据库表物理结构。 一、Hash分区表 (按HASH分区) 1、HASH分区的特点 根据MOD(分区键,分区数)的值把数据行存储到表的不同分区中,使数据可以平均的分布在各个分区中。 注意: HASH分区的键值必须是一个INT类型的值,或是通过函数可以转为INT类型。 2、创建HASH分区: use hash; CREATE TABLE `hash`.`customer_login_log`( customer_id int UNSIGNED not null, login_time TIMESTAMP, login_ip int UNSIGNED, login

hive中的分区表的基本操作

有些话、适合烂在心里 提交于 2019-12-02 05:19:16
hive中的分区表的基本操作 #查询某个表下有哪些分区 dept_partition是表名 hive ( default ) > show partitions dept_partition ; OK month = 20190922 month = 20190923 month = 20190924 1.查询分区表中数据 单分区查询 hive (default)> select * from dept_partition where month=‘20190922’; 多分区查询 hive ( default ) > select * from dept_partition where month = '20190923' union select * from dept_partition where month = '20190924' ; 2.创建分区 创建单个分区 hive (default)> alter table dept_partition add partition(month=‘20190925’); #查询某个表下有哪些分区 dept_partition是表名 hive ( default ) > show partitions dept_partition ; OK month = 20190922 month = 20190923 month =

Linux磁盘

眉间皱痕 提交于 2019-12-02 03:05:34
1、磁盘的接口类型与命名方式   磁盘接口分为SATA、SCSI、SAS、PCI-E、光纤FC通道。常见的设备在Linux中的命名如下: 设备   设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI/SATA/USB硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p] 软驱 /dev/fd[0-1] 打印机 25针:/dev/lp[0-2] USB:/dev/usb/lp[0-15] 当前CD ROM/DVD ROM /dev/cdrom   1.1 IDE接口   IDE的接口是40个针39个口,防插反。一个IDE扁平线缆可以连接两个IDE设备,通常主机提供两个IDE接口,所以最多连接4个IDE设备。这两个IDE接口又被称为IDE1(primary)和IDE2(secondary)。每条IDE扁平线缆上的IDE设备被分为Master(主设备)和Slave(从设备)。这四个IDE设备的文件名如下表: IDE/Jumper Master Slave IDE1(Primary) /dev/hda /dev/hdb IDE2(Secondary) /dev/hdc /dev/hdd   1.2SATA接口   SATA口的磁盘又叫串口磁盘。   SATA接口磁盘的命名方式不同于IDE的顺序命名,而是依照Linux内核检测到磁盘的顺序。例如:  

SQLServer查看分区表个数

独自空忆成欢 提交于 2019-12-02 02:12:02
SQL查看分区内记录个数,常规方法需要知道分区函数然后再显示,网上看到一个一句话显示的方法 select convert(varchar(50), ps.name ) as partition_scheme, p.partition_number, convert(varchar(10), ds2.name ) as filegroup, convert(varchar(19), isnull(v.value, ''), 120) as range_boundary, str(p.rows, 9) as rows from sys.indexes i join sys.partition_schemes ps on i.data_space_id = ps.data_space_id join sys.destination_data_spaces dds on ps.data_space_id = dds.partition_scheme_id join sys.data_spaces ds2 on dds.data_space_id = ds2.data_space_id join sys.partitions p on dds.destination_id = p.partition_number and p.object_id = i.object_id and p