zoukankan      html  css  js  c++  java
  • 十四、索引

    索引的概念
    索引相当于一个目录,能够更快的查询到你所想要的信息
    索引分为两种:
    二叉树索引(log2N)和哈希索引(1
     
    索引的好处与坏处
    好处:
    加快查询速度(select
    坏处:
    降低了增、删、改的速度(insert/delete/update
    增大了表的文件大小(索引文件甚至可能比数据文件还大)
     
    现在一个问题:
    公司换服务器导数据
     
    新闻表   500W行,15列,10列加了索引
     
    应该先去掉索引,再导入。
    最后再统一加索引(因为你每一条数据导入索引的速度是非常慢的)。
     
    索引的使用原则:
    1.不过度索引
    2.索引条件列(where后面最频繁的条件比较适宜索引)
    3.索引散列值,过于集中的值不要索引
    例如:给性别“男”,“女”加索引意义不大。
     
     
    索引的管理
    索引类型:
    普通索引 index):仅仅是加快查询速度
    唯一索引 unique):行上的值不能重复
    主键索引 primary key):不能重复
    主键必唯一,但是唯一索引不一定是主键
    一张表上,只能有一个主键,但是可以有一个或多个唯一索引
    全文索引 fulltext):
     
     
    查看一张表上的所有索引
    Show index from 表名 G
     
    建立索引
    Alter table 表名 add index/unique/fulltext 索引名[可选](列名);
    建立主键索引:
    Alter table 表名 add primary key(列名);//不要加索引名,因为主键只有一个
    删除索引:
    Alter table 表名 drop index索引名;
    删除主键索引:
    Alter table 表名 drop primary key
     
     
    全文索引与停止词
     
    关于全文索引的用法:
    Select id,email,match (intro) against (health) from member;(我们在查看health的时候它在各个行上所计算出来的匹配度,为0则为不匹配,非0则为匹配)
     
    全文索引在MySQL的默认情况下,对于中文意义不大。
    因为英文有空格、标点符号来拆成单词,进而对单词进行索引
    而对于中文来说,没有空格来隔开单词,MySQL无法识别每个中文词
     
    停止词的概念
    像那种特别常见的单词,例如:this,that,is,in,on,of,you,my,i,等等这些简单常见的单词
    它是不会给你加索引的。
     
    通过全文索引查找
    例:
    Select * from member where match  (intro) against(database);
     
    如果不是通过索引查找,就是这样
    Select * from member where intro like %taba%;
    这样查,行数少没有什么问题
    但是行数一多,例如member表有1000万行数据,
    那它就是一行一行找,恰巧database这个单词在第1000万行,
    那这个工作量就是非常大、非常费时的
     
     
  • 相关阅读:
    css3 box-shadow
    JS的Document属性和方法
    简单配色方案web
    ps中参考线的使用技巧
    min-width() ie6
    js 模拟右键菜单
    display:table-cell
    js opener 的使用
    js的 new image()
    CSS 中文字体 Unicode 编码方案
  • 原文地址:https://www.cnblogs.com/steven9898/p/11340633.html
Copyright © 2011-2022 走看看