博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据索引学习(1)
阅读量:5886 次
发布时间:2019-06-19

本文共 774 字,大约阅读时间需要 2 分钟。

hot3.png

索引一种排好序的快速查询的数据结构,用于排序和查询。索引是独立于数据的数据结构,占具了一定的物理存储,并会经常的性维护自身的数据。我们平常所说的索引,如果没有特别指明,都是指BTree(不一定是二叉树)结构的索引。

索引优势:查询和排序

索引的劣势:1.占具了一定的存储空间 2.对表的Insert,update,delete都要维护索引表 3.数据量大的表要花时间来研究建立最优秀的索引

mysql索引结构:BTree , R-Tree ,full-text 全文索引  ,Hash索引。默认使用BTree索引

mysql索引分类:单值索引 , 唯一索引 , 复合索引

create [unique] index indexName on table(columname(length));
drop index indexName on table
show index from table

创建索引建议:

  • 一张表索引不超过5个
  • 在where 及 order by 涉及的列上考虑建立索引
  • 主键会自动建立唯一索引
  • 频繁作为查询条件的字段应该建立索引
  • 查询中与其它表关联的字段,外键关系建立索引
  • 单值/复合索引的选择问题--在高并发下倾向创建组合索引
  • 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
  • 查询中统计或者分组的字段建立索引

不建索引情况

  • 频繁更新的字段不适合创建索引
  • where条件里用不到的字段不用索引
  • 表中数据量少的不必创建索引,mysql官方说数据量到500万的情况下性能开始下降。
  • 数据重复且分布平均的表字段不用索引,只为最经常查询和最经常排序的数据列建立索引。如果某列重复的内容太多,为其建立索引没有太大效果

 

 

转载于:https://my.oschina.net/u/2552286/blog/1548798

你可能感兴趣的文章
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
查看>>
五 数组
查看>>
也谈跨域数据交互解决方案
查看>>
EntityFramework中使用Include可能带来的问题
查看>>
面试题28:字符串的排列
查看>>
css important
查看>>
WPF 实现窗体拖动
查看>>
来自维基百科程序员Brandon Harris
查看>>
NULL不是数值
查看>>
CentOS 5 全功能WWW服务器搭建全教程
查看>>
scala111
查看>>
模块化服务规范——OSGI
查看>>
劣质代码评析——猜数字问题(上)
查看>>
纸上谈兵: 栈 (stack)
查看>>
Windows phone8 基础篇(三) 常用控件开发
查看>>
Oracle学习笔记之五,Oracle 11g的PL/SQL入门
查看>>
大叔手记(3):Windows Silverlight/Phone7/Mango开发学习系列教程
查看>>
考拉消息中心消息盒子处理重构(策略模式)
查看>>