有梦想的咸鱼..... 2021-09-22 20:26 采纳率: 50%
浏览 17
已结题

mysqlB+Tree查询

用非聚集索引查询时 如果我没设置主键id 是根据什么进行第二次回表查询

  • 写回答

1条回答 默认 最新

  • ACMAIN_CHM 2021-09-22 21:14
    关注

    13.6.10.1. Clustered and Secondary Indexes
    Every InnoDB table has a special index called the clustered index where the data for the rows is stored:

    If you define a PRIMARY KEY on your table, InnoDB uses it as the clustered index.

    If you do not define a PRIMARY KEY for your table, MySQL picks the first UNIQUE index that has only NOT NULL columns as the primary key and InnoDB uses it as the clustered index.

    If the table has no PRIMARY KEY or suitable UNIQUE index, InnoDB internally generates a hidden clustered index on a synthetic column containing row ID values. The rows are ordered by the ID that InnoDB assigns to the rows in such a table. The row ID is a 6-byte field that increases monotonically as new rows are inserted. Thus, the rows ordered by the row ID are physically in insertion order.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 创建了问题 9月22日