------------------------------------------2015-03-03---------------------------------------

表 :

  innodb 中的表都是根据主键顺序组织存放的, 这种存储方式的表称为索引组织表.  每张表都有一个主键字段. 如果没有显示的定义主键, 则会按一下顺序创建主键.

    1. 判断表中是否有非空的唯一索引, 如果有, 则该字段既为主键. (当表中有多个唯一且非空的字段时, 则以定义索引的顺序排序, 取第一个字段)

    2. 如果不满足上面的条件, 则innodb自行创建一个长度为6字节大小的字段, 定义为主键.

create table h (a int not null, b int not null ,c int ,unique key(b), unique key(a));

  

insert into h value (1,2,3),(4,5,6);

    使用 _rowid 可以显示数据行的主键值, 表 h 的主键为 b 字段.

select a,b,c,_rowid from h;
+---+---+------+--------+
| a | b | c | _rowid |
+---+---+------+--------+
| 1 | 2 | 3 | 2 |
| 4 | 5 | 6 | 5 |
+---+---+------+--------+

  查看表结构,可以看到. 字段b 被定义为主键

mysql> desc h;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a | int() | NO | UNI | NULL | |
| b | int() | NO | PRI | NULL | |
| c | int() | YES | | NULL | |
+-------+---------+------+-----+---------+-------+

      

   存储空间.

   innodb的数据都别逻辑地存放在一个空间中(磁盘).称之为表空间(tablespace). 表空间又由段(segment) ,区(extent) ,页(page) 组成. 就像下面这样的一个关系.

        

inndo 表与存储逻辑_1的更多相关文章

  1. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)

    三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...

  2. Mysql+innodb数据存储逻辑

    Mysql+innodb数据存储逻辑. 表空间由段,区,页组成 ibdata1:共享表空间.即所有的数据都存放在这个表空间内.如果用户启用了innodb_file_per_table,则每张表内的数据 ...

  3. MySQL开发篇(4)表类型(存储引擎)的选择

    一.查看支持的存储引擎以及设置修改存储引擎 1.查看默认存储引擎:show variables like '%storage_engine%'; 2.查看当前数据库支持的存储引擎:show ENGIN ...

  4. SQL Server 堆表行存储大小(Record Size)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...

  5. 数据库(表)的逻辑备份与恢复<四>

    数据库(表)的逻辑备份与恢复  介绍 逻辑备份是指使用工具 export 将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用 工具 import 利用备份的文件把数 ...

  6. mysql修改表的存储引擎(myisam<=>innodb)

    查看当前数据库的所支持的数据库引擎以及默认数据库引擎 mysql> show engines; +--------------------+---------+----------------- ...

  7. oracle 修改表空间存储路径

    [root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 Oracle Database 11g Enterpris ...

  8. MySQL更改数据库表的存储引擎

    MySQL更改数据库表的存储引擎 1.查看表的原存储引擎 show create table user; 'user', 'CREATE TABLE `user` (\n `id` int(11) N ...

  9. 「SQL归纳」树形结构表的存储与查询功能的实现——通过路径方法(非递归)

    一.树形结构例子分析: 以360问答页面为例:http://wenda.so.com/c/ 我们通过观察URL,可以明确该页面的数据以树形结构存储,下面三块模块分别为: ①根节点 ②根节点的第一层子节 ...

随机推荐

  1. mysql操作数据表

    目录 创建数据表 列约束 查看数据表结构 列类型(字段类型) 整型 浮点型 字符串 时间日期类型 Date Time Datetime Timestamp Year 枚举enum 修改表名 增加字段 ...

  2. 使用odbc从notes中导数据,配置odbc时报错

    上次在配置odbc从notes中导数据时一直报错(忘记是什么错误了),后来,尝试着把notes和notesSQL的路径加入到path中就OK了!

  3. Centos7安装配置----1配置网络

    1.下载镜像安装,选择的是最小安装,设置root用户密码 (此处省略其中步骤,直到安装成功) 2.安装完成后重启,输入用户名密码进入系统 由于此时未配置网络,所以网卡什么的均未获取ip联网 输入ip ...

  4. Shell命令-网络操作之基础之ping、route

    文件及内容处理 - ping.route 1. ping:测试主机之间网络的连通性 ping命令的功能说明 ping 命令用于检测主机.执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信 ...

  5. C++:map用法及元素的默认值

    C++:map用法 一.map基本用法 键值对 第一个参数为键的类型,第二个参数为值的类型. 源代码 #include <iostream> #include <string> ...

  6. 25.Java基础_继承

    继承的格式(Java类) Java中继承的注意事项 继承的好处与弊端 继承中成员变量的访问特点(对public形式的变量来说) 继承中成员函数的访问特点 this和super: 继承中构造方法的访问特 ...

  7. Centos 7 LAMP+wordpress

    一.简介        LAMP--->Linux(OS).Apache(http服务器),MySQL(有时也指MariaDB,数据库) 和PHP的第一个字母,一般用来建立web应用平台. 它是 ...

  8. python3.5.3rc1学习五:列表与元组

    #元组和列表 #元组定义x = 5,6,2,6 #or x = (5,6,2,6) #列表定义 y = [5,6,2,6] # 元组的使用,我们用return语句来演示 def exampleFunc ...

  9. <Array> 277 243 244 245

    277. Find the Celebrity knows(i, j): By comparing a pair(i, j), we are able to discard one of them 1 ...

  10. Python入门基础学习记录(二)汇率案例学习记录

    一.汇总整理 1.操作 ①新建python文件 工程右键--new--python file 2.注意问题与知识点 >变量定义:直接写变量名即可,例如定义一个字符串并赋值123: rmb_str ...