分区表

单表数据量超过千万的优化方案

有些话、适合烂在心里 提交于 2019-11-30 13:58:14
1. 数据库设计和表创建时就要考虑性能 2.sql 的编写需要注意优化 4. 分区 4. 分表 5. 分库 数据库设计和表创建时就要考虑性能 设计表时要注意: 表字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。 尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT、SMALLINT、MEDIUM_INT更好。 使用枚举或整数代替字符串类型 尽量使用TIMESTAMP而非DATETIME 单表不要有太多字段,建议在20以内 用整型来存IP 索引 索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描 应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段 字符字段只建前缀索引 字符字段最好不要做主键 不用外键,由程序保证约束 尽量不用UNIQUE,由程序保证约束 使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引 简言之就是使用合适的数据类型,选择合适的索引 # 选择合适的数据类型 ( 1 )使用可存下数据的最小的数据类型,整型 < date,time <

Linux 分区内存扩充(centos7)

大城市里の小女人 提交于 2019-11-30 08:29:33
我我的为例: df -h 查看当前系统磁盘使用状况,发现 根(/)目录即将满盘:如下图 我要做的就是把挂载点为 / 的分区在不影响原有数据的情况下增加可用空间! 1、首先在虚拟机上扩充“物理空间”如下图 2、输入命令 “ fdisk /dev/sda ” 添加新分区(我是在第一个磁盘上做的增容,所以后续操作为/dev/sda): 针对以上命令选项寓意 百度翻译经供参考: 切换可引导标志 B编辑BSD磁盘标签 C切换DOS兼容性标志 d删除分区 g创建一个新的空gpt分区表 g创建irix(sgi)分区表 l列出已知分区类型 打印此菜单 n添加新分区 o创建新的空dos分区表 打印分区表 q不保存更改就退出 创建新的空Sun磁盘标签 更改分区的系统ID U更改显示/输入单位 v验证分区表 将表写入磁盘并退出 x额外功能(仅限专家) 依次输入: n # 选择新建分区 p # 新建主分区 3 #设置分区号(可以默认,我这里用的3) # 起始扇区(直接回车用默认) # 结束扇区(直接回车用默认,如果要分多个区就自行设置) w # 执行修改并退出 经过以上步骤后分区的建立已经完成,但是此时系统还无法识别分区表 “ partprobe /dev/sda ” 内核重新读取分区表: 此时输入 “ fdisk -l /dev/sda ” 即可查看新加的分区 /dev/sda3 就已经加进来了: 3

linux 挂载新硬盘

帅比萌擦擦* 提交于 2019-11-30 08:01:40
linux 挂载新硬盘 查看硬盘设备 新硬盘设备在/dev目录下, 命名规则一般是sda, sdb, sdc... 每个硬盘的分区会形成一个分区文件, 同样在/dev目录下, 命名规则一般是(以sda为例) sda1, sda2...... 用fdisk对这块硬盘分区 fdisk /dev/sdb # 按 m 可显示菜单 Command (m for help): m Help: DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition Misc m print this menu u change display/entry units x extra functionality

[Bachelor] 磁盘与文件系统

╄→гoц情女王★ 提交于 2019-11-30 03:20:57
目录 文件系统概述 1. 磁盘分区 1.1 磁盘装置名 1.2 MSDOS(MBR) 与 GPT 磁盘分区表(partition table) 1.3 挂载 2. Linux文件系统 2.1 文件系统的概念 2.2 Linux 的 EXT2 文件系统 2.3 文件的存取与日志式文件系统的功能 2.4 Linux 文件系统的运作 文件系统概述 参考自《鸟哥的Linux私房菜》:http://linux.vbird.org/ 1. 磁盘分区 1.1 磁盘装置名 磁盘文件名:实体磁盘大多使用 /dev/sd[a-] 这样的文件名,而虚拟机下的虚拟磁盘可能会使用 /dev/vd[a-p] 这种文件名。 所有使用SCSI模块驱动的磁盘接口的装置文件名都是 /dev/sd[a-p] 的格式。顺序则由磁盘被系统侦测到的顺序决定。 磁盘可能有多个磁盘盘,所有磁盘盘上的同一个磁道组成的同心圆称为磁柱。 1.2 MSDOS(MBR) 与 GPT 磁盘分区表(partition table) MSDOS(MBR)分区表格式 在第一个扇区 512bytes 会有如下数据: 主要启动记录区(Master Boot Record, MBR):安装开机管理程序的地方,446 bytes 分区表(partition table):记录整个硬盘分区的状态,46 bytes 分区表最多只能有四组记录区

磁盘,fdisk分区,MBR,dd命令

点点圈 提交于 2019-11-30 03:14:32
光盘和磁盘、u盘、软盘、硬盘有什么区别 ①光盘: cdrom/dvdrom:光驱(光盘驱动器) rom:只读 ram:可以擦写 cd:700M dvd:4G ②软盘:floppy:软驱(软盘驱动器) ③U盘:U盘,全称USB闪存盘,英文名“USB flash disk”。使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用。 ④磁盘:计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。 ⑤硬盘:很硬的一个方盒子密封起来的,用来存放数据的。 硬盘: 固态硬盘(SSD) 机械硬盘(HDD ) 混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘) SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘是把磁性硬盘和闪存集成到一起的一种硬盘。 硬盘和磁盘有什么关系? 磁盘是硬盘的一种类型。 固态硬盘(Solid State Drives),简称固盘,固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。 通过接口从硬盘读写数据的速度是核心。 磁盘有哪些品牌 希捷 seagate 西部数据 western digital 东芝 Toshiba 三星

MySQL和Oracle的区别

孤街醉人 提交于 2019-11-29 19:10:25
由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮 (2) 分页查询 MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可以实现分页;而Oracle则是需要用到伪列ROWNUM和嵌套查询 (3) 事务隔离级别 MySQL是read commited的隔离级别,而Oracle是repeatable read的隔离级别,同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的 读一致性。每个session提交后其他session才能看到提交的更改。Oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session 查询时,如果对应的数据块发生变化,Oracle会在undo表空间中为这个session构造它查询时的旧的数据块 MySQL没有类似Oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但 可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据 (4)

通过spark sql创建HIVE的分区表

本小妞迷上赌 提交于 2019-11-29 18:20:09
今天需要通过导入文本中的数据到HIVE数据库,而且因为预设该表的数据会比较大,所以采用分区表的设计方案。将表按地区和日期分区。在这个过程出现过一些BUG,记录以便后期查看。 spark.sql( "use oracledb" ) spark.sql( "CREATE TABLE IF NOT EXISTS " + tablename + " (OBUID STRING, BUS_ID STRING,REVTIME STRING,OBUTIME STRING,LONGITUDE STRING,LATITUDE STRING, \ GPSKEY STRING,DIRECTION STRING,SPEED STRING,RUNNING_NO STRING,DATA_SERIAL STRING,GPS_MILEAGE STRING,SATELLITE_COUNT STRING,ROUTE_CODE STRING,SERVICE STRING) \ PARTITIONED BY(AREASTRING,OBUDATE STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' " ) spark.sql( "set hive.exec.dynamic.partition.mode = nonstrict" ) spark.sql( "set

fdisk中参数配置说明表

大憨熊 提交于 2019-11-29 16:59:48
命令 描述 a 设置活动分区标志 b 编辑BSD Unix系统用的磁盘标签 c 设置DOS兼容标志 d 删除分区 l 显示可用的分区类型 m 显示命令选项(帮助) n 添加一个新的分区 o 创建DOS分区表 p 显示当前分区表 q 不保存退出 s 为Sun Unix系统创建一个新磁盘标签 t 修改分区的系统ID u 改变使用的存储单位 v 验证分区表 w 将分区表写入磁盘 x 高级功能 来源: https://www.cnblogs.com/7haoyu/p/11523731.html

分区后不停机加载内核分区表

五迷三道 提交于 2019-11-29 16:28:55
fdisk分区后不停机加载内核分区表 问题描述: fdisk分完区保存之后,系统提示 The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) 意思是内核还用旧的分区表信息,新的分区表会在重启或者执行partprobe or kpartc之后使用 解答 # fdisk -l # 查看分区信息 # cat /proc/partitions 查看内存的分区表 没有把新的分区加载进去 使用如下命令: # partx -a /dev/sdb命令,执行之后查看内核分区表 # cat /proc/partitions 已经成功加载进去 来源: https://www.cnblogs.com/l-mac/p/11522524.html

大数据--hiveDML命令操作

老子叫甜甜 提交于 2019-11-29 14:27:47
1、分区表管理 1.1、创建分区表 hive (db_test)> create table dept_partition(deptno int, dname string, loc string) > partitioned by(month string) > row format delimited fields terminated by '\t'; OK Time taken: 0.266 seconds ------------------------------------------------------------------------------------------------------- 1.2、往分区表里面导入数据 [root@bigdata113 hivetest]# cat dept 10 ACCOUNTING 1700 20 RESEARCH 1800 30 SALES 1900 40 OPERATIONS 1700 hive (db_test)> load data local inpath '/root/hivetest/dept' into table dept_partition partition(month='201909'); Loading data to table db_test.dept_partition