快速掌握数据库索引技术[数据库设计]

  1. 索引的分类:

    普通索引、主键索引、唯一索引、全文索引、复合(组合)索引。

  2. 何时创建索引:

(1) 较频繁的作为查询条件的字段;

(2) 唯一性太差的字段(如性别/状态字段等),即使我们频繁作为查询的条件,匀不适合创建索引;

(3) 数据更新非常频繁的字段(如统计平台当前的在线人数字段/商品的销售数量字段等)是不适合创建索引。

 3. 创建索引(也可用可视化工具直接创建,这里我们用代码演示):

(1) 普通索引:

create index 索引名 on 表名(表字段)

(2) 主键索引:

在创建表时,设定主键字段,如id,即为主键索引。

(3) 唯一索引:

① 如果字段设置了唯一约束条件(unique),该字段便是一个唯一索引了;

② 直接创建唯一索引: create unique index 索引名 on 表名(字段1,字段2...)

(4) 全文索引:

顾名思义,全文索引主要就是文件、文本(如商品详情、文章、新闻等等)之类的一个检索。

注意:使用全文索引,表的引擎必须设置为MyISAM,否则无效。

① 创建: create fulltext index 索引名 on 表名(字段1,字段2...)

②使用:

I )  selete 字段1,字段2... from 表名  where  match(匹配对应的全文索引字段)  against(模糊检索的飞中文字符串)。

II) where条件不能用: 全文索引字段like‘%字符串%’,不然全文索引无效。

III) mysql提供的fulltext只针对英文有效,处理中文要用sphinx(coresseek)技术做中文处理,后期将讲述sphinx(coresseek)安装和使用;

③组合索引:

create  index  索引名   on  表名(字段1,字段2...)

 4.索引的代价:

(1). 创建索引是需要开销的,会占用一定的磁盘空间;

(2). 索引数据牵引难度大;

(3). 为了维护索引文件,会导致增、删、改操作变慢。

小常识:1.  show  index from  表名 ,  可以查看对应的表详细使用索引情况;

                  2. explain : 在sql不执行的情况下,就可以看到sql的详细执行情况,便于我们分析sql和优化sql。

时间: 2024-11-06 04:32:13

快速掌握数据库索引技术[数据库设计]的相关文章

数据库索引技术

技术原理 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息. 例如这样一个查询:select * from table1 where id=10000.如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止:有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找.由于索引是经过某种算法优化过的,因而查找次数要少的多.可见,索引是用

高级数据库典型技术

数据库作为计算机学科中一个比较重要的分支,也是一个对于程序员来说非常好的学习方向.平时我们用的最多的,同时也是接触最多的一定是增删改查语句,select, update,delete等,当然,我不会拿这些再说一遍,这些都是老的掉渣的东西了.所以我们可以学习高级数据库中所以涉及的技术.换句话,其实就是抛开业务层的逻辑,从更加深层次的角度理解数据库.今天我主要提交3个技术点, 1.数据索引技术,典型的B+树索引系列 2.数据库故障恢复技术,我这里只提的是基于日志的恢复技术 3.数据库系统结构,讲讲时

数据库索引详解

[By GavinHacker] 转载请标明出处:http://www.cnblogs.com/gavinsp/p/5513536.html 关于数据库索引,相信大家用到最多的一定是数据库设计和数据库查询,本篇深度解析一下数据库索引的原理,涉及数据库本身的设计原理,对设计应用的数据库结构,和数据库查询也大有益处. (一)在了解数据库索引之前,首先了解一下数据库索引的数据结构基础,B+tree B+tree 是一个n叉树,每个节点有多个叶子节点,一颗B+树包含根节点,内部节点,叶子节点.根节点可能

数据库加密技术的要点分析

近年来,人们对信息安全的重视程度逐渐增加,然而仍然有大量的信息泄密事件呈井喷状,不断闯入大众视线.这些事件所涉及的泄密源,往往是传统安全防护手段难以涵盖的数据库存储层面.入侵者或利用职权之便,或直接采取行动入侵数据库主机,从而将不设防的数据库存储文件整体窃走并还原.这种简单粗暴却屡屡见效的方式背后,隐含的重大安全需求便是--数据库安全,用户需要有效的加密技术作为存储层防护手段. 对数据库存储层进行加密,可以解决明文存储引发的信息泄露风险,但是数据库加密这项技术要想形成真正让用户既安全又安心的产品

Oracle索引技术研究

Oracle索引类型 B树索引 特定类型索引 确定索引列 主键和唯一键值列的索引 外键索引 其他合适的索引列 B树索引 B树索引算法 B树是指B-tree(Balanced Tree),B树的存在是为了存储设备而设计的一种多分叉的树.B树中 每个节点至多含有m个子节点 每个非叶子节点除了根节点之外至少含有⌈m/2⌉个子节点 根节点至少含有2个子节点否则它是叶子节点 有k个子节点的非叶子节点包含k-1个键值 所有叶子节点出现在同一层 其中,m称为该B树的阶,一个3阶B树的节点的排列如同 [指针]键

数据库索引设计与优化

这篇是计算机中数据库设计类的优质预售推荐<数据库索引设计与优化>. 盖国强.姜承尧.金官丁.叶金荣.童家旺一众国内数据库界巨腕争相作序|支付宝.网易.云和恩墨联DB掌门连袂推荐的造是什么书吗? 编辑推荐 中国数据库界几大势力云集于这本旷世奇作,没读过咋好意思和DBA同行打招呼 蚂蚁(原支付宝)数据库团队资深专家携成长回忆与技术历程倾情献上最优质翻译 本书旨在--通过设计适用于现代硬件的索引,来提升关系型数据库的性能 软硬件发展让数据库性能被忽视,但数据处理量增长更快,全新索引优化设计才能根治随

数据库索引设计的几个常用算法

参考:http://blog.csdn.net/yangbutao/article/details/8372511 B+.B- Tree(mysql,oracle,mongodb)      主要用在关系数据库的索引中,如oracle,mysql innodb:mongodb中的索引也是B-树实现的:还有HBase中HFile中的DataBlock的索引等等. 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tr

Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文本文件形式保存 使用数据缓存技术,例如: MemCached (二)优化的检测方法 1.用户体验检测 2.Mysql状态检测 在Mysql命令行里面使用show status命令,得到当前mysql状态. 主要关注下列属性: key_read_requests (索引读的请求数)(key_buffe

数据库索引设计

索引的类型:normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引. FULLTEXT 用于搜索很长一篇文章的时候,效果最好.用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以. 总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见. 普通索引 添加INDEXALTER TABLE `table_name` ADD INDEX ind