mysql 索引如何使 SELECT 查询更快

Kan*_*iya 2 php mysql sql

嗨,我MySQL在某种程度上了解索引。

我可以在创建表时创建索引

CREATE TABLE Product (
    ->    ID SMALLINT UNSIGNED NOT NULL,
    ->    ModelID SMALLINT UNSIGNED NOT NULL,
    ->    PRIMARY KEY (ID),
    ->    INDEX (ModelID)
Run Code Online (Sandbox Code Playgroud)

创建表后添加索引

CREATE INDEX index_name
ON table_name (column_name)
Run Code Online (Sandbox Code Playgroud)

也改变索引

ALTER TABLE TABLE_NAME ADD INDEX (COLUMN_NAME);
Run Code Online (Sandbox Code Playgroud)

**我想知道的是索引如何使选择查询快速

索引如何影响选择算法MySQL,索引列如何影响算法?请解释一下,提前致谢

ktm*_*124 5

索引创建一个单独的文件,其中记录按二叉树排序。与全表扫描相反,查找记录变成了二分查找操作,这使得通过索引字段查找记录变得非常快。

主键查找甚至更快,因为与索引不同,记录与键一起存储。也就是说,记录存储在二叉树的叶子上。对于索引,只有被索引的字段存储在叶中,查找需要额外的 I/O 操作来查找记录。

当你索引一个字段时,你最终会创建一个相当大的索引文件,这就是为什么你不应该索引任何不需要索引的字段。