使用索引的好处与坏处?
好处:大大加快了查询的速度
坏处:降低了增、删、改的速度,增大了磁盘资源的消耗(索引文件甚至可能比数据文件还大)。
索引的使用原则?
1.不过度使用索引
2. 较频繁的作为查询条件的字段应该添加索引
3. 数据分布比较离散的字段适合添加索引,数据分布比较集中的字段不适合添加索引(如性别)
4. 更新非常频繁的字段不适合添加索引.
5. 不会出现在where子句中的字段不适合添加索引。
根据索引的对象,索引可分为哪几种?
普通索引(index)、唯一索引(unique)、主键索引(primary key)、全文索引(fulltext)。
根据索引的数据结构,索引可分为哪几种?
hash索引,BTree索引。
Hash索引和BTree索引依赖的存储引擎是什么?
BTree索引依赖的存储引擎是myisam或innodb,Hash索引依赖的引擎是memory。
BTree索引依赖的存储引擎是myisam或innodb,有什么区别吗?
使用MyISAM引擎,一张表对应三张保存文件(结构文件、数据文件、索引文件),也就是说使用myisam引擎,数据文件和索引文件是分开的,我们称之为非聚集索引。使用innodb引擎,一张表对应一张保存文件,也就是说使用innodb引擎,数据文件和索引文件是绑定在一起的,我们称之为聚集索引。
hash索引和BTree索引的时间复杂度是多少?
BTree索引的时间复杂度为O(log2N),Hash索引的时间复杂度理论上为O(1)。