MongoDB使用的是B-Tree索引,但是在存储引擎层面(如WiredTiger),MongoDB使用的是一种称为Prefix-compressed key的B-tree变体,这种变体对于减少内存使用非常有效。
MySQL中InnoDB的索引结构采取的是B+树,这是因为B+树的内部节点不存储数据,只存储键值,这样使得每个节点可以存储更多的键值,从而减少IO次数,提高查询效率。
以下是创建MongoDB索引的示例代码:
// 在MongoDB中,你可以使用以下命令在集合上创建索引
db.collection.createIndex({ field1: 1, field2: -1 });
// 这将会在field1上创建升序索引,在field2上创建降序索引
以下是创建MySQL InnoDB索引的示例SQL代码:
// 在MySQL中,你可以使用以下SQL命令在表上创建索引
ALTER TABLE table_name ADD INDEX index_name (column1, column2);
// 这将会在column1和column2上创建一个名为index_name的索引