mysql表分区

Hive SQL之分区表与分桶表

牧云@^-^@ 提交于 2019-11-27 18:15:46
  Hive sql是Hive 用户使用Hive的主要工具。Hive SQL是类似于ANSI SQL标准的SQL语言,但是两者有不完全相同。Hive SQL和Mysql的SQL方言最为接近,但是两者之间也存在着显著的差异,比如Hive不支持行级数据的插入、更新和删除,也不支持事务操作。    注: HIVE 2.*版本之后开始支持事务功能,以及对单条数据的插入更新等操作 Hive的相关概念 Hive数据库       Hive中的数据库从本质上来说仅仅就是一个目录或者命名空间,但是对于具有很多用户和组的集群来说,这个概念非常有用。首先,这样可以避免表命名冲突;其次,它等同于与关系型数据库中数据库的概念,是一组表或者表的逻辑组,非常容易理解 Hive表      Hive中的表和关系型数据库中table概念是类似的,每个table在Hive中都有一个相应的目录存储数据。如果说,你没有指定表的数据库,那么Hive会通过{HIVE_HOME}/conf/hive_site.xml配置文件中的hive.metastore.warehouse.dir属性来使用默认值(一般是/usr/hive/warehouse,也可以根据实际情况来进行修改该配置),所有的table都保存在这个目录中。     Hive中的表分为两类,分别为 内部表 和 外部表 内部表(managed table)     

MySQL分区与传统的分库分表

℡╲_俬逩灬. 提交于 2019-11-27 07:29:08
传统的分库分表 传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库。 分库 分库的原因 首先,在单台数据库服务器性能足够的情况下,分库对于数据库性能是没有影响的。在数据库存储上, database 只起到一个 namespace 的作用。 database 中的表文件存储在一个以 database名 命名的文件夹中。比如下面的 employees 数据库: mysql> show tables in employees; +---------------------+ | Tables_in_employees | +---------------------+ | departments | | dept_emp | | dept_manager | | employees | | salaries | | titles | +---------------------+ 在操作系统中看是这样的: # haitian at haitian-coder.local in /usr/local/var/mysql/employees on git:master ● [21:19:47] → ls db.opt dept_emp.frm dept_manager.ibd salaries.frm titles.ibd departments.frm dept

oracle的表分区

℡╲_俬逩灬. 提交于 2019-11-26 21:20:27
(1.) 表空间及分区表的概念 表空间:   是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。 分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 ( 2).表分区的具体作用 Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 什么时候使用分区表: 1、表的大小超过2GB。 2、表中包含历史数据,新的数据被增加都新的分区中。 (3).表分区的优缺点 表分区有以下优点