最近在学mysql,由于对索引没怎么接触过,故做下笔记已被后面参考.
假设我们有个公司表没有建立索引,公司有个编号,当我们要查询编号为13的公司(其中表中存在很多记录关于同一个公司的),由于公司编号没有排序的,要查找该公司信息必须扫描全表.如果我们建立了索引,编号会排好序,当我们查找13的公司,数据库快速确定索引为13,确定第一个开始的行和最后结束的行,这样效率明显提高了.当然排序后再查,也是可以提高效率的.
索引的缺点对于select的比较使用,但是添加,删除,更新时,dbms都要花时间去维护索引表.
索引的建立:
1.索引应该创建在搜索,排序,归组等操作设计的数据列上.
2.尽量使用唯一列做为索引
3.尽量使用比较短的值作为索引,因为比较长的值会加大I/O操作.
4.利用慢查询日志找出哪些性能低的查询,可用用到mysqldumpslow
假设我们有个公司表没有建立索引,公司有个编号,当我们要查询编号为13的公司(其中表中存在很多记录关于同一个公司的),由于公司编号没有排序的,要查找该公司信息必须扫描全表.如果我们建立了索引,编号会排好序,当我们查找13的公司,数据库快速确定索引为13,确定第一个开始的行和最后结束的行,这样效率明显提高了.当然排序后再查,也是可以提高效率的.
索引的缺点对于select的比较使用,但是添加,删除,更新时,dbms都要花时间去维护索引表.
索引的建立:
1.索引应该创建在搜索,排序,归组等操作设计的数据列上.
2.尽量使用唯一列做为索引
3.尽量使用比较短的值作为索引,因为比较长的值会加大I/O操作.
4.利用慢查询日志找出哪些性能低的查询,可用用到mysqldumpslow