文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>堆组织表(hot)和索引组织表(iot)

堆组织表(hot)和索引组织表(iot)

时间:2010-10-08  来源:shawn53

myisam使用的堆组织表(Heap Organize Table, HOT)使用B-tree索引的存储格式,显示都是随机顺序。

innodb表是索引组织表(Index Organized Table, IOT),它的索引则是采用 clustered index 方式,因此主键会按照顺序存储,每次有记录有更新时,会重新整理更新其主键。因此无论是直接从 myisam 表转换过来的,还是后来插入的记录,显示时都会按照主键的顺序。

mysql> select * from duplicate_key;
+----+------+
| id | p_id |
+----+------+
| 2 | 2 |
| 3 | 3 |
| 5 | 5 |
| 4 | 4 |
| 6 | 6 |
| 7 | 7 |
+----+------+
6 rows in set (0.00 sec)

此时的duplicate_key表是myisam引擎的,

update duplicate_key set id=id-1的时候会提示Duplicate entry '4' for key 'PRIMARY'错误。

update duplicate_key set id=id-1 order by id;如果这样做,就不会出错,原理上面已做出了说明。

如果是innodb引擎就不会出现这样的情况,因为他的聚集索引存储方式会按顺序来显示。


3:在myisam引擎使用的时候如果你delete了其中的几条数据,这时的表就是一个hole表。

如果你不使用表维护命令进行维护,你新插入的数据就会放到你刚刚删除的那个位置。如果不够清楚,乐于详细解答。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载