嗨,我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,索引列如何影响算法?请解释一下,提前致谢
索引创建一个单独的文件,其中记录按二叉树排序。与全表扫描相反,查找记录变成了二分查找操作,这使得通过索引字段查找记录变得非常快。
主键查找甚至更快,因为与索引不同,记录与键一起存储。也就是说,记录存储在二叉树的叶子上。对于索引,只有被索引的字段存储在叶中,查找需要额外的 I/O 操作来查找记录。
当你索引一个字段时,你最终会创建一个相当大的索引文件,这就是为什么你不应该索引任何不需要索引的字段。