一、数据库
1.为什么select * 这种方式效率低?
1.1不需要的列会增加时间传输时间和网络开销,尤其是大类型的字段:text varchar
1.2对于无用的大字段,会增加IO操作
1.3将失去mysql优化器"覆盖索引"策略优化的可能性
2.什么是索引?索引为什么能增加查询效率?
2.1数据库当成一本新华字典,索引就是这个字典的目录,一般会针对where条件后面得字段
show INDEX from 'order' #查询某个表的索引
2.2主键本身就是一种唯一索引
3.索引是建的越多越好吗?
答案:不是。原因如下:
3.1建索引会占用空间
首先,在数据库表中创建索引,这些索引也是数据,也是需要占用磁盘空间的。而磁盘是和cpu、内存一样重要的资源,尤其是数据库是用来保存数据的,会大量的耗费磁盘。
所以磁盘空间,是建索引要考虑的其中一项。
3.2维护索引需要耗费性能
索引其实就类似新华字典的目录页类似。假设我们要在新华字典里新增加一个字,那必然要重新维护一下新华字典的目录页