為什麼加上order by id 後才能掃描更少。
這是結構
CREATE TABLE phone_copy
(
id
int(1) NOT NULL AUTO_INCREMENT,
phone
varchar(100) CHARACTER SET utf8 DEFAULT NULL,
type
varchar(255) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (id
),
UNIQUE KEY phone
(phone
)
) ENGINE=InnoDB AUTO_INCREMENT=228483 DEFAULT CHARSET=latin1;
這是查詢語句(只有加上order by id 才能掃的更少,加上where id大於多少也不好使,為什麼就是limit後還是繼續掃描呢)
EXPLAIN SELECT * from phone_copy order by id limit 1
這是結果;
回複內容:
為什麼加上order by id 後才能掃描更少。
這是結構
CREATE TABLE phone_copy
(
id
int(1) NOT NULL AUTO_INCREMENT,
phone
varchar(100) CHARACTER SET utf8 DEFAULT NULL,
type
varchar(255) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (id
),
UNIQUE KEY phone
(phone
)
) ENGINE=InnoDB AUTO_INCREMENT=228483 DEFAULT CHARSET=latin1;
這是查詢語句(只有加上order by id 才能掃的更少,加上where id大於多少也不好使,為什麼就是limit後還是繼續掃描呢)
EXPLAIN SELECT * from phone_copy order by id limit 1
這是結果;
用了order by的limit,如果order by的欄位是索引欄位,則直接在索引上limit