数据库开发——MySQL——索引原理
一、介绍
1.为何要有索引?
一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题。
在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。
说起加速查询,就不得不提到索引了。
2.什么是索引?
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。
索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。
索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
3.平衡索引
索引是应用程序设计和开发的一个重要方面。
若索引太多,应用程序的性能可能会受到影响。
而索引太少,对查询性能又会产生影响,要找到一个平衡点,这对应用程序的性能至关重要。
一些开发人员总是在事后才想起添加索引----我一直认为,这源于一种错误的开发模式。
如果知道数据的使用,从一开始就应该在需要处添加索引。
开发人员往往对数据库的使用停留在应用的层面,比如编写SQL语句、存储过程之类,他们甚至可能不知道索引的存在,或认为事后让相关DBA加上即可。
DBA往往不够了解业务的数据流,而添加索引需要通过监控大量的SQL语句进而从中找到问题,这个步骤所需的时间肯
数据库开发——MySQL——索引原理相关推荐
- 后端开发【一大波有用知识】数据库之mysql索引原理详解
1.索引 索引分类:主键索引.唯一索引.普通索引.组合索引.以及全文索引(elasticsearch): 1.1.主键索引 非空唯一索引,一个表只有一个主键索引:在innodb中,主键索引的B+树包含 ...
- mysql json匹配key为数值_干货篇:一篇文章让你——《深入解析MySQL索引原理》
概述 最近一段时间重新深入研究了一遍MySQL的内容,今天主要分享分析MySQL索引原理,后续会输出一些关于MySQL方面的干货,希望各位小伙伴喜欢. 一.什么是索引.为什么要建立索引? 关于索引的理 ...
- 转:MySQL索引原理及慢查询优化
来自:http://tech.meituan.com/mysql-index.html MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色, ...
- (转)MySQL索引原理及慢查询优化
转自美团技术博客,原文地址:http://tech.meituan.com/mysql-index.html 建索引的一些原则: 1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到 ...
- 干货:MySQL 索引原理及慢查询优化
转载自 http://blog.csdn.net/kaka1121/article/details/51815368 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首 ...
- 知识点:Mysql 索引原理完全手册(1)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) Mysql-索引原理完全手 ...
- MySQL索引原理及慢查询优化
背景 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师 ...
- MySQL索引原理及慢查询优化,了解一下?
MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库. 虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师的必 ...
- MySQL索引原理详解
MySQL索引原理详解 索引的本质 索引的分类 Hash 索引 二叉树 B树(二三树) B+树 主键目录 索引页 索引页的分层 非主键索引 回表 索引的本质 索引的本质是一种排好序的数据结构. 索引的 ...
最新文章
- 分享几个用 Python 给图片添加水印的方法,简单实用
- matlab e 精确到,matlab中用0.618法求minf(x)=e^(-x)+x^2在区间(0,1)上的极小值,精确到0.03....
- 设置在桌面上不显示计算机,怎么在桌面上显示我的电脑 我的电脑桌面不显示怎么办...
- graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'Digraph.gv']
- 独舞风雪夜 跟我学mvc系列
- Ubuntu中启用 ThinkPad指纹识别
- Easyui入门视频教程 第11集---Window的使用
- 工厂方法 coding
- PHP代码调试神器Whoops
- 基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
- C++ 初始化与赋值
- 人大副教授从细节上教你如何快速进行研究生早期的科研之路
- 计算机语言丛书学习:C\C++\JAVA\Python 基础-案例-应用
- Intellij IDEA 神级插件!效率提升 10 倍!
- Oracle中的常用日期函数
- python爬取别人qq空间相册_Python网络爬虫5 - 爬取QQ空间相册
- 软件安全需求、设计、测试【归纳】
- 使用pip无法完全卸载autoitlibrary,提示 we cannot accurately determine which files belong to it which would‘解决办法
- Awesome Chrome 插件集锦
- 看了下大厂程序员的工资表,我酸了.....
热门文章
- JAVA-循环体小练习——ATM取款机
- When.js 1.8.0 发布,Promises/A 的实现
- python pytest setupclass_简单了解pytest测试框架setup和tearDown
- 华为代码规范_53年国内唯三,华为MindSpore论文获顶会最佳论文提名
- cmd 删除文件夹_永远不要碰的5个macOS文件夹及原因
- 魅族用鸿蒙系统吗,魅族宣布接入鸿蒙是怎么回事?魅族手机可以刷鸿蒙系统吗?...
- Java黑皮书课后题第5章:*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生
- idea 启动php项目路径,关于idea中Java Web项目的访问路径问题
- 【2012百度之星/资格赛】D:共同狂欢
- POJ 2312 Battle City 优先队列+BFS