精华内容
下载资源
问答
  • 2020-07-05 16:21:13

    由于Spring Cloud Config默认采用了Git存储,相信很多团队在使用Spring Cloud的配置中心时也会采用这样的策略。即便大家都使用了Git存储,可能还有各种不同的配置方式,本文就来介绍一下两种常用的配置策略。

    第一种:多个项目公用一个Git仓库,用不同的目录区分项目

    主要的配置项如下:

    spring.cloud.config.server.git.uri=https://github.com/dyc87112/config-repo.git
    spring.cloud.config.server.git.search-paths=/{application}

     这种模式下不同的项目会对应到https://github.com/dyc87112/config-repo.git仓库下的不同目录,如果项目中spring.application.name=user-service,那么它的配置仓库会定位到https://github.com/dyc87112/config-repo.git仓库下的/user-service目录。配置文件按application-{profile}.properties的格式存储,{profile}代表环境名。

    优缺点分析:因为只使用一个Git库存储,所以当配置是由专人统一维护的时候比较方便。但是如果要做DevOps的话,权限控制上将变的非常的弱。

    第二种:多个项目使用多个不同Git仓库

    主要的配置项如下:

    spring.cloud.config.server.git.uri=https://github.com/dyc87112/{application}.git
    

    这种模式下不同的项目会对应的不同的Git仓库,如果项目中spring.application.name=user-service,那么它的配置仓库会定位到https://github.com/dyc87112/user-service.git仓库下的配置。配置文件按application-{profile}.properties的格式存储,{profile}代表环境名。

    优缺点分析:由于一个项目就有一个对应的存储配置的Git仓库,所以这种模式对于DevOps的应用支持较好,如果使用Gitlab作为Git服务端的话,还有不错的界面和权限管理来方便项目所属者使用和维护。如果团队不是DevOps模式管理的话,专人管理就会遇到有N多Git仓库要维护的困境。

    更多相关内容
  • Adding to existing stock是一种常用的上架策略。这种类型上架策略里,系统会自动找到相同批次号下有库存的货架,然后将待上架的数量上架到该货架上。这样做的好处是,可以比较充分的利用有限的仓库空间。 本文...

    SAP WM中阶之存储类型上架策略I(Adding to existing stock)

    SAP WM模块里,有很多上架策略。Adding to existing stock是一种常用的上架策略。这种类型上架策略里,系统会自动找到相同批次号下有库存的货架,然后将待上架的数量上架到该货架上。这样做的好处是,可以比较充分的利用有限的仓库空间。

    本文就是对这个上架策略的一个简单展示。

    1.存储类型Z02的上架策略被设置为I。

    上架策略:I (Addition to existing stock).

    如果上架策略是I,则Add to stock字段必须不能为空,否则会报错如下:

    报错信息是:If you have st.pl.str. "Add.to ex.st.", additions to ex.st.must be allow.

    2, 在Z02存储类型的货架12-01-01下物料号788的批次0000000499库存数据如下:

    该Quant的GR date 是2022-3-14。

    3, 今天是2022-3-15,再次收一次货,批次号也是0000000499,也是上架到货架12-01-01里。观察一下今天收货的库存上架到货架12-01-01里面以后Quant的变化。

    执行事务代码MIGO对物料788的采购订单做一次收货。

    收货数量是53.

    保存后执行LT06,

    回车,进入如下界面,

    点击Palletization按钮,进入如下的界面,

    前台方式创建TO单,进入如下界面,

    系统自动建议上架到12-01-03。这里修改一下目的地货架为12-01-01,

    回车,然后保存,

    确认该TO单据。

    4, 再次检查Z02下12-01-01货架里的库存。

    事务代码LX02,

    Quant(122)的库存数量增加了53,但是GR date还是保留之前的date,而不会被更新为最近的收货日期。

    注:本文基于SAP S4/HANA 1909系统。

    -完-

    写于2022-3-15

    展开全文
  • 本文主要对MySQL常用存储引擎进行介绍,从整体上对MySQL存储引擎有个了解,后续会有文章对InnoDB存储引擎进行纵向分析。 文章目录1、简述2、MySQL 支持的存储引擎2.1、InnoDB 存储引擎2.2、MyISAM 存储引擎2.3、...

    本文主要对MySQL常用存储引擎进行介绍,从整体上对MySQL存储引擎有个了解,后续会有文章对InnoDB存储引擎进行纵向分析。

    1、简述

    MySQL服务器中对数据的存储及数据的操作行为都封装到了一个叫做存储引擎的模块中。我们知道表是由一行一行的记录组成的,这只是一个逻辑上的概念,物理上如何表示记录,怎么从表中读取数据,怎么把数据写入具体的物理存储器上,这都是存储引擎负责的事情。为了实现不同的功能,MySQL提供了各式各样的存储引擎,不同存储引擎的表对数据的存储结构及存储算法也各自不同。

    MySQL提供了多种存储引擎,每种存储引擎都有其各自的特点,我们可以具体的需要选择不同的存储引擎。同时MySQL还预定义了存储引擎接口,如果你对其提供的存储引擎性能或功能不够满意,也可以修改其源码,甚至自定义自己的存储引擎。

    2、MySQL 支持的存储引擎

    2.1、InnoDB 存储引擎

    InnoDB 是 MySQL 的事务安全(兼容ACID)的存储引擎。它的特点是支持行级锁、支持外键、支持类似于Oracle的非锁定读,即读取操作不会加锁。 从 MySQL 5.5.8 开始,InnoDB 存储引擎作为默认的存储引擎。

    InnoDB 通过使用多版本并发控制(MVCC)来获得高并发性能,并且实现了4种隔离级别,默认是REPEATABLE级别。同时,还是用了一种 next-key locking的策略来避免幻读的产生。另外,InnoDB 存储引擎还提供了插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。

    对于表中数据的存储,InnoDB 存储引擎采用了聚集的方式,每张表的存储都是按照主键顺序进行存放。如果没有显式的定义表的主键,InnoDB 存储引擎会为每一行生成一个6字节的ROWID,并以此作为主键。

    2.2、MyISAM 存储引擎

    MyISAM 表级锁设计限制了读/写工作负载中的性能,因此它通常用于Web和数据仓库配置中的只读或只读工作负载中。

    MyISAM 存储引擎不支持事务、支持表级锁、支持全文检索,主要面向OLAP数据库的应用。在 。MySQL 5.5.8 版本之前 MyISAM 是默认的存储引擎(除Windows版本)。

    MyISAM 存储引擎的缓冲池只缓存索引文件,不缓存数据文件,数据文件的缓存由操作系统本身来完成。

    2.3、Memory 存储引擎

    Memory 存储引擎,之前也叫HEAP存储引擎。它将所有数据存储在RAM中,以便在需要快速查找非关键数据的环境中进行快速访问。如果数据库重启或者崩溃,表中的数据就会丢失。因此,它非常适合用于存储临时数据,以及数据仓库中的维度表。

    Memory 存储引擎默认使用哈希索引,而不是我们所熟悉的B+树索引。

    Memory 存储引擎速度非常快,但是在使用上还是有一定的限制。比如,只支持表级锁,并发性能较差;不支持TEXT和BLOB类型。更重要的是,存储变长字段(varchar)时,仍然按照定长(char)存储,因此会很浪费内存。

    2.4、Archive 存储引擎

    Archive 存储引擎只支持INSERT和SELECT操作,从MySQL 5.1开始支持索引。Archive 存储引擎使用zlib算法将数据行压缩后存储,压缩比一半是1:10。Archive 存储引擎非常适合存储归档数据,比如日志信息。Archive 存储引擎使用行锁来实现高并发的插入操作,但是它本身并不是事务安全的存储引擎,它的设计目标是提供高速的插入和压缩功能。

    2.5、Merge 存储引擎

    Merge 存储引擎的设计目标是用来取代原有的MyISAM存储引擎,因此它可以看作是MyISAM存储引擎的后续版本。

    MyISAM存储引擎的特点:

    • 支持缓存数据和索引文件
    • 支持行级锁
    • 提供了MVCC功能
    • 支持事务和非事务安全的选项
    • 支持BLOG字符类型

    2.6、Federated 存储引擎

    Federated 存储引擎并不存放数据,它只是指向一台远程MySQL数据库服务器上的表。并且Federated 存储引擎只支持MySQL数据库表,不支持异构数据库表。

    2.7、其它存储引擎

    除了上面提到的存储引擎之外,MySQL数据库还有很多其它的存储引擎,包括 Blackhole 存储引擎、NDB(NDBCLUSTER) 存储引擎、CSV 存储引擎、Sphinx 存储引擎和Infobright存储引擎,他们都有各自的使用场景,这里不再一一介绍。

    3、MySQL 存储引擎功能概要

    在这里插入图片描述

    备注:
    1、在服务器中实现而不是存储引擎。

    2、仅在使用压缩行格式时才支持压缩MyISAM表。在MyISAM中使用压缩行格式的表是只读的。

    3、在服务器中通过加密功能实现。

    4、通过加密功能在服务器中实现;在MySQL 5.7和更高版本中,支持静态数据表空间加密。

    5、MySQL Cluster NDB 7.3和更高版本中提供了对外键的支持。

    6、MySQL 5.6和更高版本提供了对FULLTEXT索引的InnoDB支持。

    7、MySQL 5.7和更高版本提供了InnoDB对地理空间索引的支持。

    8、InnoDB在内部将哈希索引用于其自适应哈希索引功能。

    4、存储引擎的操作

    4.1、查看存储引擎

    mysql> show engines;
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
    | InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
    | MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
    | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
    | CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
    | ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    9 rows in set (0.00 sec)
    
    

    4.2、设置存储引擎

    我们创建表没有指定表的存储引擎,就会使用默认的存储引擎InnoDB。我们可以显式的指定一下表的存储引擎。

    mysql> CREATE TABLE test (i INT) ENGINE =MEMORY;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> INSERT INTO test VALUES(1),(2),(3);
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> select * from test;
    +------+
    | i    |
    +------+
    |    1 |
    |    2 |
    |    3 |
    +------+
    3 rows in set (0.00 sec)
    

    4.3、修改存储引擎

    mysql> ALTER TABLE test ENGINE = InnoDB;
    Query OK, 3 rows affected (0.02 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> show create table test;
    +-------+---------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                        |
    +-------+---------------------------------------------------------------------------------------------------------------------+
    | test  | CREATE TABLE `test` (
      `i` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
    +-------+---------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    

    5、参考文献

    1. 《高性能MySQL(第3版)》
    2. 《MySQL技术内幕:InnoDB存储引擎(第2版)》
    3. 《MySQL源码库》
    4. 《MySQL参考手册》
    5. 《MySQL实战45讲》
    6. 《MySQL 是怎样运行的:从根儿上理解 MySQL》
    展开全文
  • mysql存储引擎

    万次阅读 多人点赞 2019-07-31 19:28:44
    数据库存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还...

    数据库存储引擎

    数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。

    因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(Table Type,即存储和操作此表的类型)。

    如创建一个InnoDB类型的表:

    CREATE TABLE `brand` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `brand_name` varchar(64) NOT NULL,
      `brand_logo` varchar(255) NOT NULL,
      `description` varchar(255) NOT NULL,
      `parent_id` int(11) NOT NULL,
      `layer` int(11) NOT NULL DEFAULT '0',
      `enabled` int(11) NOT NULL DEFAULT '0',
      `path` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `brand_name` (`brand_name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    mysql存储引擎

    MySQL给开发者提供了查询存储引擎的功能,执行以下sql即可查询到mysql中的存储引擎

    SHOW ENGINES

    我的mysql版本是5.7.22,下面是在Navicat中执行的结果

    InnoDB存储引擎

    InnoDB是事务型数据库的首选引擎,通过上图也看到了,InnoDB是目前MYSQL的默认事务型引擎,是目前最重要、使用最广泛的存储引擎。支持事务安全表(ACID),支持行锁定和外键。InnoDB主要特性有:

    1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合

    2、InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的

    3、InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上

    4、InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键

    5、InnoDB被用在众多需要高性能的大型数据库站点上

    InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。

    场景:由于其支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

    MyISAM存储引擎

    MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物和外键。

    MyISAM主要特性有:

    1、大文件(达到63位文件长度)在支持大文件的文件系统和操作系统上被支持

    2、当把删除和更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块自动完成

    3、每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16

    4、最大的键长度是1000字节,这也可以通过编译来改变,对于键长度超过250字节的情况,一个超过1024字节的键将被用上

    5、BLOB和TEXT列可以被索引,支持FULLTEXT类型的索引,而InnoDB不支持这种类型的索引

    6、NULL被允许在索引的列中,这个值占每个键的0~1个字节

    7、所有数字键值以高字节优先被存储以允许一个更高的索引压缩

    8、每个MyISAM类型的表都有一个AUTO_INCREMENT的内部列,当INSERT和UPDATE操作的时候该列被更新,同时AUTO_INCREMENT列将被刷新。所以说,MyISAM类型表的AUTO_INCREMENT列更新比InnoDB类型的AUTO_INCREMENT更快

    9、可以把数据文件和索引文件放在不同目录

    10、每个字符列可以有不同的字符集

    11、有VARCHAR的表可以固定或动态记录长度

    12、VARCHAR和CHAR列可以多达64KB

    存储格式:

    1、静态表(默认):字段都是非变长的(每个记录都是固定长度的)。存储非常迅速、容易缓存,出现故障容易恢复;占用空间通常比动态表多。

    2、动态表:占用的空间相对较少,但是频繁的更新删除记录会产生碎片,需要定期执行optimize table或myisamchk -r命令来改善性能,而且出现故障的时候恢复比较困难。

    3、压缩表:使用myisampack工具创建,占用非常小的磁盘空间。因为每个记录是被单独压缩的,所以只有非常小的访问开支。

    静态表的数据在存储的时候会按照列的宽度定义补足空格,在返回数据给应用之前去掉这些空格。如果需要保存的内容后面本来就有空格,在返回结果的时候也会被去掉。(其实是数据类型char的行为,动态表中若有这个数据类型也同样会有这个问题)

    使用MyISAM引擎创建数据库,将产生3个文件。文件的名字以表名字开始,扩展名之处文件类型:frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex)。

    场景:如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。

    MERGE存储引擎

    MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,尽管其使用不如其它引擎突出,但是在某些情况下非常有用。说白了,Merge表就是几个相同MyISAM表的聚合器;Merge表中并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行操作。

    场景:对于服务器日志这种信息,一般常用的存储策略是将数据分成很多表,每个名称与特定的时间端相关。例如:可以用12个相同的表来存储服务器日志数据,每个表用对应各个月份的名字来命名。当有必要基于所有12个日志表的数据来生成报表,这意味着需要编写并更新多表查询,以反映这些表中的信息。与其编写这些可能出现错误的查询,不如将这些表合并起来使用一条查询,之后再删除Merge表,而不影响原来的数据,删除Merge表只是删除Merge表的定义,对内部的表没有任何影响。

    MEMORY存储引擎

    MEMORY存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。MEMORY主要特性有:

    1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500字节的最大键长度

    2、MEMORY存储引擎执行HASH和BTREE缩影

    3、可以在一个MEMORY表中有非唯一键值

    4、MEMORY表使用一个固定的记录长度格式

    5、MEMORY不支持BLOB或TEXT列

    6、MEMORY支持AUTO_INCREMENT列和对可包含NULL值的列的索引

    7、MEMORY表在所由客户端之间共享(就像其他任何非TEMPORARY表)

    8、MEMORY表内存被存储在内存中,内存是MEMORY表和服务器在查询处理时的空闲中,创建的内部表共享

    9、当不再需要MEMORY表的内容时,要释放被MEMORY表使用的内存,应该执行DELETE FROM或TRUNCATE TABLE,或者删除整个表(使用DROP TABLE)

    MEMORY存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,但也可以使用B树型索引。由于这种存储引擎所存储的数据保存在内存中,所以其保存的数据具有不稳定性,比如如果mysqld进程发生异常、重启或计算机关机等等都会造成这些数据的消失,所以这种存储引擎中的表的生命周期很短,一般只使用一次。现在mongodb、redis等NOSQL数据库愈发流行,MEMORY存储引擎的使用场景越来越少。

    场景:如果需要该数据库中一个用于查询的临时表。

    ARCHIVE存储引擎

    Archive是归档的意思,在归档之后很多的高级功能就不再支持了,仅仅支持最基本的插入和查询两种功能。在MySQL 5.5版以前,Archive是不支持索引,但是在MySQL 5.5以后的版本中就开始支持索引了。Archive拥有很好的压缩机制,它使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库使用。

    场景:由于高压缩和快速插入的特点Archive非常适合作为日志表的存储引擎,但是前提是不经常对该表进行查询操作。

    CSV存储引擎

    使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型的文件当做表进行处理),这种文件是一种普通文本文件,每个数据行占用一个文本行。该种类型的存储引擎不支持索引,即使用该种类型的表没有主键列;另外也不允许表中的字段为null。csv的编码转换需要格外注意。

    场景:这种引擎支持从数据库中拷入/拷出CSV文件。如果从电子表格软件输出一个CSV文件,将其存放在MySQL服务器的数据目录中,服务器就能够马上读取相关的CSV文件。同样,如果写数据库到一个CSV表,外部程序也可以立刻读取它。在实现某种类型的日志记录时,CSV表作为一种数据交换格式,特别有用。

    BLACKHOLE存储引擎(黑洞引擎)

    该存储引擎支持事务,而且支持mvcc的行级锁,写入这种引擎表中的任何数据都会消失,主要用于做日志记录或同步归档的中继存储,这个存储引擎除非有特别目的,否则不适合使用。

    场景:如果配置一主多从的话,多个从服务器会在主服务器上分别开启自己相对应的线程,执行binlogdump命令而且多个此类进程并不是共享的。为了避免因多个从服务器同时请求同样的事件而导致主机资源耗尽,可以单独建立一个伪的从服务器或者叫分发服务器。

    PERFORMANCE_SCHEMA存储引擎

    该引擎主要用于收集数据库服务器性能参数。这种引擎提供以下功能:提供进程等待的详细信息,包括锁、互斥变量、文件信息;保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,例如(CYCLE、MICROSECOND)。 MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。

    场景: DBA能够较明细得了解性能降低可能是由于哪些瓶颈。

    Federated存储引擎

    该存储引擎可以不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。这种存储引擎非常适合数据库分布式应用。

    Federated存储引擎可以使你在本地数据库中访问远程数据库中的数据,针对federated存储引擎表的查询会被发送到远程数据库的表上执行,本地是不存储任何数据的。

    缺点:

    1.对本地虚拟表的结构修改,并不会修改远程表的结构

    2.truncate 命令,会清除远程表数据

    3. drop命令只会删除虚拟表,并不会删除远程表

    4.不支持 alter table 命令

    5. select count(*), select * from limit M, N 等语句执行效率非常低,数据量较大时存在很严重的问题,但是按主键或索引列查询,则很快,如以下查询就非常慢(假设 id 为主索引)

    select id from db.tablea where id >100 limit 10 ;

    而以下查询就很快:

    select id from db.tablea where id >100 and id<150

    6.  如果虚拟虚拟表中字段未建立索引,而实体表中为此字段建立了索引,此种情况下,性能也相当差。但是当给虚拟表建立索引后,性能恢复正常。

    7. 类似 where name like "str%" limit 1 的查询,即使在 name 列上创建了索引,也会导致查询过慢,是因为federated引擎会将所有满足条件的记录读取到本地,再进行 limit 处理。

    场景: dblink。

    存储引擎的选择

    功 能

    MYISAM

    Memory

    InnoDB

    Archive

    存储限制

    256TB

    RAM

    64TB

    None

    支持事物

    No

    No

    Yes

    No

    支持全文索引

    Yes

    No

    No

    No

    支持数索引

    Yes

    Yes

    Yes

    No

    支持哈希索引

    No

    Yes

    No

    No

    支持数据缓存

    No

    N/A

    Yes

    No

    支持外键

    No

    No

    Yes

    No

     

    展开全文
  • 一篇文章搞懂数据仓库常用ETL工具、方法

    万次阅读 多人点赞 2020-12-04 14:06:10
    二、ETL & ELT 三、常用的ETL工具 3.1 sqoop 3.2 DataX 3.3 Kettle 3.4 canal 3.5 StreamSets 四、ETL加载策略 4.1 增量 4.2 全量 4.3 流式 小编有话 一、什么是ETL? ETL,是英文Extract-Transform-Load的缩写...
  • 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。  什么是存储引擎...
  • 这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎、MyISAM、InnoDB、MEMORY、MERGE等内容,需要的朋友可以参考下 前言 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响...
  • 数据仓库存储与实现

    千次阅读 2016-07-11 18:07:23
    当面对大量的数据,而且是各种各样...数据仓库的数据由两种存储方式:一种是存储在关系数据库中,另一种是按多维的方式存储,也就是多维数组。 2、存储何种数据? 数据仓库中存在不同的综合级别的数据。一般把数据分
  • MySQL中四种常用存储引擎

    千次阅读 2018-05-02 15:20:19
    转载:https://www.cnblogs.com/xujishou/p/6343431.html一、MySQL的存储引擎完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html这里介绍一些主要的引擎 1、InnoDB存储...
  • 数仓存储压缩格式的选择对于数仓存储及性能的...本文对常见的几种压缩存储方案进行了研究,并对其性能各方面进行了测试,给出了数仓中常用存储压缩解决方案,并对实践中遇到的问题进行了总结,具有一定的借鉴意义。
  • 集群部署策略是什么,集群运行状态如何监控,数据怎么采集的,采集后的存储和分析策略是什么? 集群部署策略是什么 简单的节点部署策略 因为在一般情况下,Hadoop节点需要占用的磁盘空间是最紧张的资源,所以最...
  • 这些价格的下降使公司能够提供更广泛的商业需要,包括企业资源计划、销售自动化、数据仓库、数据市场等。同时,存储价格的下降也加速了信息的数字化,而在过去,许多信息仅能以模拟形式或书写的形式存在,如出版物...
  • 一些企业的仓库会设置一个比较大的地面存储区域,没有立体多层货架,而是划定在地面上画出一个一个的虚拟货架,然后将托盘放进去,多个托盘堆栈式码放。如下图示: 对于这样的Bulk Storage区域,SAP系统...
  • 运行存储的分配,我的理解是:过程调用在运行中的编译。
  • 数据压缩是在以Hadoop为主要构架的数据仓库中常见的数据处理方式,一方面适当的压缩数据,能够有效的提高MR计算任务时数据传输的效率,另一方面由于HDFS自身的三备份策略,导致数据存在比较大的冗余,通过压缩能够...
  • 本文定义的存储类型搜索,需要基于仓库管理的日常业务的实物流,所以实物流必须梳理清晰,可以回顾下存储类型标识符的定义内容《13 WM配置-主数据-定义存储类型标识符(Indicator)》。 事务码:OMLY SPRO路径:...
  • 大数据的存储

    千次阅读 2020-12-18 08:42:50
    大数据的存储 1.存储方式 1.1 块存储         块存储就好比硬盘一样,直接挂载到主机,一般用于主机的直接存储空间和数据库应用的存储。它分两种形式:    ...
  • 我们还发现自己向每个项目添加了相同的库和相同的架构,因此我们决定为最常用的Xamarin开发策略创建一个模板存储库。 我们希望您发现这些与我们一样有用! 在此仓库中使用: MvvmCross具有出色的跨平台应用程序 ...
  • 数据仓库存储和实现

    千次阅读 2012-09-03 17:06:07
    当面对大量的数据,而且是各种各样...数据仓库的数据由两种存储方式:一种是存储在关系数据库中,另一种是按多维的方式存储,也就是多维数组。 2、存储何种数据? 数据仓库中存在不同的综合级别的数据。一般把数据分
  • Hadoop常用文件存储格式,Hadoop支持的压缩算法,HDFS压缩如何抉择,压缩算法比较,HDFS存储类型和存储策略,冷热温三阶段数据存储,HDFS中的内存存储支持,HDFS存储策略命令,HDFS使用懒持久化存储策略,BigData ...
  • SAP WM模块中,下架策略A(Partial Pallet Quantity)也比较常用。放在仓库里的物料,有零托的,有满托的。如果需要下架小数量的物料,SAP系统可以建议自动优先从零托货架上下架,这自然是一种很好的很方便仓库管理...
  • github的使用(概要版) Github的世界 什么是github Github除提供Git仓库托管服务外,还为开发者或团队提供了一系列功能,帮助其高效率,高品质地进行代码编写. 使用github带来哪些变化 写作形式的变化 在 ... 【cs229...
  • 本文介绍了Facebook公司数据分析系统中的RCFile...Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库的数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,259
精华内容 10,903
关键字:

仓库常用的存储策略