精华内容
下载资源
问答
  • oracle数据库空间估算

    2021-05-02 03:01:09
    如何计算存储空间,整理了一下我们在设计一个数据库的时候除了考虑数据块的大小,可能还要和开发沟通,这个数据库要存储多少数据,那么这个数据库应该具备多大的容量来满足一个应用的存储呐?DBA就需要计算一下这个...

    如何计算存储空间,整理了一下

    我们在设计一个数据库的时候除了考虑数据块的大小,可能还要和开发沟通,这个数据库要存储多少数据,那么这个数据库应该具备多大的容量来满足一个应用的存储呐?DBA就需要计算一下这个应用占用多大的存储空间

    首先我们来看一下几个换算的单位:

    1K=1024Bytes;

    1M=1024K

    1G=1024M

    1T=1024G

    而我们的表里一个字段能占用多大的空间呐?我们先看一下字段的类型:

    1.        变成:number(),varchar2 (),long ,blob等都是变成 (单位都是Bytes)

    2.        定长:date (7bytes) ,char()

    根据经验:

    1.对于变长字段的处理:

    我们在估算一行所占用空间的时候只能是取最大值,比如x number(20),这个字段,我们不管插入x列里的内容是否真正的满足20个bytes,我们都按照20来计算;

    2.对于定长字段的处理:

    这个就直接取实际长度就ok了;

    具个例子来计算一下平均行占用的存储空间:

    Create table test (x number(20),y varchar2(20),z date ,char(20));

    那么这个表平均每行最大使用的空间为:

    (20+20+7+20)=67 (Bytes)

    假设这个表里有20000000条数据,那么这个表所使用的净空间(pur_stroage)为:

    (20+20+7+20)*20000000 (Bytes)=1278M

    但是ORACLE在组织存储的时候是有空间结构的,oracle要把一部分空间分配给数据库作为结构存储(str_storage),不会把所有的空间都分配给我们用来数据存储,这么大的数据量我们要给多少真正的存储空间(real_stroage)?

    我们可以用下边这个简单的公式来计算:

    real_stroage= str_storage+ pur_stroage

    上边这个公式中,我们已知了pur_stroage 要求出real_stroage就需要知道str_storage,ok现在我们来了解一下每个块的存储形式下图是个block的结构图

    _______________________________________________________________________

    |                     |                                                                                                                     |

    |  1fixed          |                                                                                                                     |

    |   header        |                                                                                                                    |

    |___________|                                                                                                                    |

    |                       |                                                                                                                   |

    | 2. variable      |                                                                                                                  |

    | trans_header |             5- available_block                                                                         |

    |___________ |                                                                                                                   |

    |                       |                                                                                                                   |

    |  3.table dir     |                                                                                                                   |

    |                      |                                                                                                                    |

    |___________|                                                                                                                     |

    |                      |                                                                                                                     |

    |  4.row dir      |                                                                                                                     |

    |                      |                                                                                                                     |

    |___________|___________________________________________________________|

    1-4部分组成了一个数据块的块头(block_header)

    5 是数据块的块身(block_body)

    一个一个说吧:

    1.        定长的数据块头 57bytes

    2.        块中事务并发使用空间,这个值是有可能变化的,如果多个事务并发,那么这个块的大小会发生改变,一个事务是23*1 bytes,2个事务是23*2 bytes,依次类推,一般我们计算的似乎后按照23*1来计算

    3.        使用块的表 4 bytes

    4.        使用块的行 2 *n bytes 这个块的列使用情况在于有多少行如果有4行数据存储在这个块里那么n=4

    5.        才是表和索引能使用的存储空间

    那么是不是5里的空间我们能够完全使用呐?

    非也,拿上边的例子来说吧,假设有一行数据里test.x里存储的数值是1,这个时候有一个语句来执行:

    Update test set x=100000000,而恰好这个时候此行数据所在的block满了怎么办?

    Oracle为了避免这种情况的发生,引入了两个概念:

    PCTUSED和PCTFREE,这两个值相当于2个水位线,我们拿一个杯子来比喻数据块,那么PCTUSED控制这个杯子什么时候可以继续倒水;而PCTUSED表示什么时候这个杯子不能再倒水了

    假设PCTUSED设置成了6,PCTFREE设置成了2 ,那么它就表示,当一个杯子达到了60%空的时候可以再继续使用,当杯子的水达到80%的时候就不能再倒水了,而这个值全部都记录在数据块的freelist列表里;

    所以可见,5里的初次使用率最高也不会超过available_block*PCTFREE

    str_storage=(fix_header+trans_header+table_dir+row_dir*N)*pctfree/10

    real_stroage= str_storage+ pur_stroage

    =(fix_header+trans_header+table_dir+row_dir*N)*pctfree/10+(20+20+7+20)* N

    N=该表里的数据量

    当然这个值所求出来的也是个近似的值;

    posted on 2009-11-10 09:05 xnabx 阅读(604) 评论(0)  编辑  收藏

    展开全文
  • 数据库空间估算

    千次阅读 2011-11-24 09:59:07
    在做数据库设计过程中必须要进行多个方面的计划,其中空间估算尤其是一个DBA所不能回避的问题。 空间估算的准确与否决定了  1。系统对资源的需求--投资问题  2。数据分布是否合理--数据结构设计问题  3。...
    在做数据库设计过程中必须要进行多个方面的计划,其中空间估算尤其是一个DBA所不能回避的问题。   
    空间估算的准确与否决定了   
            1。系统对资源的需求--投资问题   
            2。数据分布是否合理--数据结构设计问题   
            3。应用设计,特别是数据存取方面的设计--系统运行性能问题等。   

    同时,由于ORACLE数据类型的多样,数据模型的复杂,空间估算也代表了相当大的工作量。   
    通常的空间估算包括了对TABLE,INDEX,CLUSTER,ROLLBACK   SEGMENT,TEMPORARY   SEGMENT以及REDO   LOG方面等的计算。在本文中重点给出了对TABLE,INDEX的估算。   
    应该强调的是估算工作主要针对数据库中比较大的表,以及在应用中变化量较大的表。   


    在进行空间估算之前,有必要再回顾以下认识:   
    1。对于数据块的认识:   
            。数据块的大小有DB_BLOCK_SIZE决定,并且只有通过重建数据库来得到调整。空间计算的根据来自于数据块。   
            。数据块由数据块头,数据区组成。数据区的使用由PCTFREE,PCTUSED控制。当INSERT发生时,   
            PCTFREE决定了该块所能容纳的最多的数据,即,剩余空间占数据块实际空间的百分比不小于PCTFREE。   
            空间估算中PCTFREE是很一个很重要的参数。   
    2。对于在表上进行的事务(TRANSACTION)类型要有一个清晰的认识,因为这会帮助如何更好的确定PCTFREE   &   PCTUSED。   
    例如:   
            如果PCTFREE的值太大,记录又可能很长,这会引起行链接(ROW-CHAINING),同时空间利用率也不高;       如果PCTFREE的值太小,会影响块数据记录的增长,容易引起行迁移(ROW-MIGURATING);   
            如果PCTUSED的值太大,空间上似乎没什么问题,但数据块的操作上又有潜在的性能问题,因为数据块需要在   
                    FREELIST上反复搬动;   
            如果PCTUSED的值太小,则又出现了空间利用率不高的问题。   
    3。PCTFREE   &   PCTUSED表示的是DB_BLOCK_SIZE减去数据块头后的百分比值。   
    4。ORACLE采用的是延迟写(DELAYED   CLEANOUT)方式来完成事务处理,所以由DELETE及UPDATE等操作释放的空间并不会   
    马上被利用。这一点在数据变化频繁时需要加以考虑。   
    5。记录结尾空值(TRAILING   NULLS)不占存储空间,但如果出现在记录中间,则会占用1   byte。所以ORACLE建议尽可能   
    将经常出现空值的列放在结构定义的尾部。   
    6。CHAR,DATE是定长数据类型,NUMBER,VARCHAR2,LONG,LONG   RAW等是变长数据类型。其中DATE的长度固定为7   BYTES,   
    包括世纪,年,月,日,时,分,秒。   

    方法一:   

    对表的空间估算   
    根据以下步骤确定表对空间占用的情况。要注意的是这里给出的是该表初始建立时所占的空间。   
    一。数据块头的大小   
        block   header   =   fixed   header   +   variable   transaction   header   +   table   directory   +   row   directory   
              where:   
                    fixed   header   =   57   bytes     
                    variable   transaction   header   =   23   *   i     (i   代表   INITRANS的值,这是个动态值,最大不超过MAXTRANS)   
                    table   directory   =   4   *   n         (对于非CLUSTERED表来讲n=1)   
                    row   directory   =   2   *   x         (x=该数据块中的记录数)   
    说明:   
    1。VARIABLE   TRANSACTION   HEADER代表的是发生在此数据块上的事务所占用的空间。每个事务占用23   BYTES,   
    一般情况下(INITRANS=1),块头部会保留23   BYTES,更多的事务要占用空间会利用PCTFREE所保留的空间。所以   
    随着事务的增加,数据块头会向下“长”也是这个道理。   
    2。随着块中记录数量的增加,ROW   DIRECTORY的值也会增加,这样也会增加块头部的大小。并且,即使后来删除了   
    这些记录,块头也不会“回缩”。   
    有了这些概念,如上述公式,假定INITRANS=1,数据块头的大小为:   
        block   header   =   57   +   23   +   4   +   2x   =   (84   +   2x)   bytes   

    二。块中可用的空间为:   
        available   data   space   =   (block   size   -   total   block   header)   -   
                      ((block   size   -   total   block   header)   *   (PCTFREE/100))   
    假定BLOCK   SIZE=2K,PCTFREE=10,即:   
        available   data   space   =   (2048   -   (84   +   2x))   -   ((2048   -   (84   +   2x))   *   (10/100))   
                                                  =   (1964   -   2x)   -   ((2048   -   84   -   2x)   *   (10/100))   
                                                  =   (1964   -   2x)   -   (1964   -   2x)   *   0.1   
                                                  =   (1964   -   2x   -   196   +   0.2x)   bytes   
                                                  =   (1768   -   1.8x)   bytes   

    三。计算每条记录的长度:   
    这取决于三个方面,   
            1。表中定义的列的个数   
            2。每列的类型   
            3。变长列的平均长度(根据与实际数据库类似的测试数据库)   
        SELECT   AVG(NVL(VSIZE(col1),   1))   +   
                      AVG(NVL(VSIZE(col2),   1))   +   
                      ...   +   
                      AVG(NVL(VSIZE(coln),   1))     "SPACE   OF   AVERAGE   ROW "   
                      FROM   table_name;   
    注:记录结尾的列如果不空,上述公式有效;如果结尾的列为空,该列长被计为0。   

    举例来讲,我们创建了TEST表,   
        CREATE   TABLE   test   (   A   CHAR(10),     B   DATE,     C   NUMBER(10,   2));   
    我们可以通过   
        SELECT   AVG(NVL(VSIZE(A),   1))   +   
                      AVG(NVL(VSIZE(B),   1))   +   
                      AVG(NVL(VSIZE(C),   1))       "SPACE   OF   AVERAGE   ROW "   
                      FROM   test;   
    来估算每条记录的大小。   
    如果测试数据库不存在,则需要分别考虑各列的情况。   
          1。对于定长列,每条记录的该列值也是定长;   
          2。对于变长列,首先要估计该列的平均值,然后再决定该值需要多大空间。   
    就TEST表来讲,A列与B列均为定长列,所以他们分别需要10及7   BYTES来存储。对于C列,   
    假设平均该值有8位长度,由于是数字类型,所以存储长度为:   
        average   length   column   C   =   (average_precision/2   +   1)   bytes   
                                                        =   (8/2   +   1)   bytes   
                                                        =   5   bytes   

    这样,     average   row   (for   columns)=   (A   +   B   +   C)   
                                    =   (10   +   7   +   5)   bytes   
                                    =   22   bytes   

    四。记录平均存储空间为:   
          average   row   size   =   row   header   +   F   +   V   +   D       
                其中:   
                      row   header   =   3   bytes   (非CLUSTER表)   
                      F                     =   列长的总和(1   byte表示长度的列,CHAR,   NUMBER,   DATE,   and   ROWID   types)   
                      V                     =   列长的总和(3   bytes表示长度的列,CHAR,   LONG,   RAW,   LONG   RAW   datatypes)   
                      D                     =   average   row   (for   columns,from   above)   
    说明:   
    1。由于每列数据在存储时需要额外的位来表示其长度,通常,如果该列值> 250,需要3   bytes表示,   
    如果 <250,需要1   byte表示,   
    2。对于NON-CLUSTERED表,average   row   size最小值为9,所以如果上述值小于9,则要用9   bytes计算。   

    再看TEST表,   
          average   row   size       =   row   header   +   F   +   V   +   D       
                          =   3+(1*3)+(3*0)+22   
                          =   28   bytes   

    五。平均每块中的记录数为,   
        average   number   of   rows   per   block   =   floor(available   data   space   /   average   row   size)   
                  x       =   floor((1768-1.8x)/28)   
                  28x         =1768-1.8x   
                  x       =   59   (近似值)   
    根据记录量的大小,例如TEST表中有10000条记录,可以算得该表需要的数据块数量:   
        number   of   blocks   
        for   the   table           =   number   of   rows   /   average   number   of   rows   per   block   
                          =   10000/59   
                          =   169   blocks   (近似值)   

    从而得到该表可能占据的存储空间为169*db_block_size.
    对索引空间的估算   
    一。数据块头的大小   
        block   header   size   =   fixed   header   +   variable   transaction   header   
              其中:   
                    fixed   header   =   113   bytes   
                    variable   transaction   header   =   23*i         (i=INITRANS)   
    假定INITRANS=2,   
        block   header   size   =   113   +   (23   *   2)   bytes   
                                            =   159   bytes   

    二。数据块中可供INDEX使用的空间为:   
        available   data   space   =   (block   size   -   block   header   size)   -   
                                                      ((block   size   -   block   header   size)   *   (PCTFREE/100))   
    假定PCTFREE=10,DB_BLOCK_SIZE=2K   
        available   data   space   =   (2048   bytes   -   159   bytes)   -   
                                                      ((2048   bytes   -   159   bytes)   *   (10/100))   
                                                  =   1889   bytes   -   188.9   bytes   
                                                  =   1700.1   bytes   

    三。INDEX   entry的长度   
    与表的计算方法类似,估算出被索引的列的平均长度之和,利用下面公式得到每一条INDEX   ENTRY的长度。   
        bytes   per   entry   =   entry   header   +   ROWID   length   +   F   +   V   +   D   
              其中:   
                    entry   header   =   1   byte   
                    ROWID   length   =   6   bytes   
                      F                     =   列长的总和(1   byte表示长度的列,CHAR,   NUMBER,   DATE,   and   ROWID   types)   
                      V                     =   列长的总和(3   bytes表示长度的列,CHAR,   RAW   datatypes)   
                      D                     =   被索引列长之和     (from   above)   

    如果我们在TEST表上建立了在A,B,C三列上的一个索引,则D=22,于是   
        bytes   per   entry   =   1   +   6   +   (3   *   1)   +   (3   *   0)   +   22   bytes   
                                        =   32   bytes   

    四。于是,该索引所需要的数据块数量为:   
        number   of   blocks   
        for   index                 =   1.1   *   ((number   of   not   null   rows   *   avg.   entry   size)   /   
                                              ((floor   (avail.   data   space   /   avg.   entry   size))   *   
                                              (avg.   entry   size))   

    注:这里带入了系数1.1主要考虑到INDEX的建立需要分支(BRANCH   ENTRY   BLOCKS)   
        number   of   blocks   
        for   index                 =   1.1   *   ((10000   *   32   bytes)   /   ((floor   (1700/32   bytes))   *   
                                                          (32   bytes))   
                                          =   208   blocks   

    从而得到该表可能占据的存储空间为208*db_block_size.   

    方法二:   
    利用ANALYZE进行空间估算   
    如果可以建立一个模拟环境(模拟数据或者实际数据),也可以利用ANALYZE命令来进行空间估算。   
    具体方法为:   
    一。ANALYZE   TABLE   testtable   COMPUTE   STATISTICS   
    在DBA_TABLES中有下面的列   
    =========================================   
      AVG_SPACE         表中平均剩余空间   
      AVG_ROW_LEN         平均一条记录的长度   
      OWNER           表的所有者   
      TABLE_NAME         表名   
      NUM_ROWS         表中记录数   
    =========================================   


    则:   
    表的大小(估计值)       =           DB_BLOCK_SIZE*                     ceil(实际表中记录数/floor((DB_BLOCK_SIZE-AVG_SPACE)/AVG_ROW_LEN))   

    二。ANALYZE   INDEX   testindex   COMPUTE   STATISTICS   
    在DBA_INDEXES中有下面的列   
    =========================================   
      OWNER           索引的所有者   
      INDEX_NAME         索引名   
      TABLE_OWNER         索引的基表所有者   
      TABLE_NAME         索引的基表   
      LEAF_BLOCKS         索引中叶子块数   
      BLEVEL                 B-Tree   level:   B-tree的深度,   
                  如果为0表示根与叶子在同一个LEVEL上.   
    =========================================   

    则:   
    索引的大小(估计值)   =   LEAF_BLOCKS*ceil(实际表中记录数/NUM_ROWS);   
    如果BLEVEL <> 0,还需要考虑再加上一个系数,用来包含用作分支(BRANCH)块的空间。   
    此外,在INDEX_STATS视图中包含了更详细的有关索引空间及结构上的分配情况,这需要事先进行   
    ANALYZE   INDEX   testindex   VALIDATE   STRUCTURE的动作。有兴趣可以详细参见该视图的定义。 

    展开全文
  • sql数据库磁盘空间计算

    千次阅读 2018-05-15 17:07:17
    stuname(char(10)),stusex(char(10)),classID(int)行占字节数 4+10+10+4+9=37每一页存储多少行(8*1024-96)/37=218需要多少页 100000(总数据行数)/218=页数页数*8KB/2014=实际的磁盘空间---计算数据库表占得页数 ...
    一页=8KB
    
    页头占去96字节
    stuid(int) stuname(char(10)),stusex(char(10)),classID(int)
    行占字节数 4+10+10+4+9=37
    每一页存储多少行(8*1024-96)/37=218
    需要多少页 100000(总数据行数)/218=页数

    页数*8KB/2014=实际的磁盘空间

    ---计算数据库表占得页数
    select OBJECT_NAME(i.object_id) as 表名,data_pages as 数据页数
    from sys.indexes as i
    join sys.partitions as p on p.object_id=i.object_id and p.index_id=i.index_id
    join sys.allocation_units as a on a.container_id=p.partition_id
    where i.object_id=object_id('stuinfo');
    
    
    SELECT * FROM STUINFO;
    
    
    DECLARE @count INT;
    select @count=1;
    while(@count<=100000)
    begin
    	INSERT INTO STUINFO (stuid,stuname,stusex,classID) VALUES (@count,'1111','男',1);
    	select @count = @count+1;
    end
    
    
    
    select * from stuinfo where stuid=100000;
    
    select count(*) from stuinfo;
    
    select * from sysobjects where name= 'stuinfo';
    select * from sysindexes where id=581577110;
    
    select * from sysindexes
    
    select * from stuinfo;
    
    drop table stuinfo;
    
    create table stuinfo 
    (
    	stuid int,
    	stuname char(10),
    	stusex char(10),
    	classID int
    )
    
    declare @count int;
    declare @stuid int;
    
    select @count = 1;
    
    while(@count<1000)
    begin
    select @stuid=cast(ceiling(rand() * 100000000) as int)
    insert into stuinfo (stuid,stuname,stusex,classID) values (@stuid,'1111','男',1); 	
    select @count = @count+1
    end

    展开全文
  • 参考公安部计算标准  

    参考公安部计算标准



     

    展开全文
  • 数据库性能与容量评估

    千次阅读 2021-01-26 03:48:30
    一、数据库设计1、表结构设计-表中的自增列(auto_increment属性)推荐使用bigint类型-首选使用非空的唯一键, 其次选择自增列或发号器不使用更新频繁的列,尽量不选择字符串列,不使用UUID MD5 HASH-业务中选择性很少...
  • http://jinnianshilongnian.iteye.com/blog/2031823估计表的大小(一)估计表的大小下列步骤可用于估计存储表中的数据所需的空间量。指定表中的行数:表中的行数 = Num_Rows如果在表的定义中有固定长度和可变长度列,...
  • Mysql数据库存储引擎

    2015-10-07 12:30:18
    数据库存储引擎决定了表在计算机中的存储方式。存储引擎的概念是MySQl的特点,而且是一个插入式的存储引擎概念。这就决定了MySQl数据库中的表可以使用不同的存储方式存储。用户可以根据自己的不同要求,选择不同的...
  • 通过Mysql系统表,information_schema数据库tables数据表的DATA_LENGTH, INDEX_LENGTH, TABLE_ROWS字段来估算SAAS系统租户数据存储空间
  • 数据库容量和内存测算的一些想法 参考于:... ... 一、数据库容量估算 总体来说数据库容量核心分析对象还是数据库表,以及围绕数据库表的视图、索引、日志等相关附属信息。汇总这些信...
  • 容量估算--随时更新

    2018-06-07 15:53:00
    一、 数据库服务器的硬件估计 首先确定系统要支撑的tps峰值是多少,这个数值一般由实际业务量来估计或者设计容量确定。实际业务估计可以通过考察旧系统业务峰值出现的时间和峰值访问量来估计,设计容量则是系统设计...
  • 数据库估算

    2010-03-08 15:29:16
    计算一条数据占用物理空间多少可以大体如下计算: 统计表的所有字段分别按字段大小计算:常用的char()括号里数字多少就站多少B,varchar2()实际存储几位就占几B,括号内位最大值, DATE类型存储为7个字节,...
  •  一网友问我将一个查询的结果集存放到临时表里,如果估算临时表的大小,当时想的方法是通过统计block来计算。后来想,此方法的操作性也不是很高。 最好是能在查询操作执行之前就能估算出大小。    查看了...
  • 目录查看表分配的物理空间大小查看表实际存储空间大小查看每个表空间的大小查看表空间大小及使用率查看数据库中数据文件信息查看临时表空间信息 oracle表大小有两种含义,即表分配的空间大小和实际占用的物理空间...
  • 如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所...
  • 通过oncheck工具,可以查到创建数据库所指定的DBspace空间。语句如下:$ oncheck -pe datadbs |more 转载于:https://blog.51cto.com/702410/1698418
  • bit >>8>> Bytes >>1024>> KB >>1024>> MB >>1024>> GB >...英文字符占:1Bytes 中文字符、符号:2Bytes 1 CHAR:1 Bytes ...select vsize(...
  • 索引使用空间 varchar(10),未用空间 varchar(10))',@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''回答: Access 不像 SQL SERVER ,不存在此功能。其实在 ...
  • 简介 估计有很多开发,或者刚刚接触MySQL数据库的运维人员,不太清楚,如何去计算MySQL数据库...第一部分为:innodb存储引擎占用的buffer pool size,一部分为myism存储引擎占用的内存大小 第二部分为:MySQL数据库
  • 数据库数据库设计

    千次阅读 2020-11-16 16:47:49
    数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。...
  • 收集几个空间数据的存储形式

    千次阅读 2019-06-17 00:27:17
    MySql,PostgreSQL数据库 1.PostgreSQL由于具备PostGIS扩展而在开源GIS中有广泛地应用...2.从MySQL4.1开始,也对空间数据库进行了支持。 MySql支持的类型 点 POINT(15 20) 线 LINESTRING(0 0, 10 10, 20 25, 50 6...
  • 因工作上设计数据库结构,整理了MySQL各字段类型所需的物理存储空间大小(如下)及一些笔记!!!1.MySQL字段类型对应的存储需求列类型值范围(有符号;无符号)存储需求TINYINT-128到127;0到2551个字节SMALLINT-32768...
  • 内存数据库

    2021-07-29 02:52:28
    中文名内存数据库外文名main memory database定义将数据放在内存直接操作的数据库下设最大特点“主拷贝”常驻内存内存数据库数据库简介编辑语音内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重.....
  • MySQL 数据库存储引擎

    2015-11-12 14:56:37
    数据库存储引擎决定了表在计算机中的存储方式。存储引擎的概念是MySQl的特点,而且是一个插入式的存储引擎概念。这就决定了MySQl数据库中的表可以使用不同的存储方式存储。用户可以根据自己的不同要求,选择不同的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,193
精华内容 8,477
关键字:

数据库存储空间估算