mysql 索引

什么是mysql索引?

    mysql的索引就好比:新华字典的目录;

       ---》现在把新华字典的目录撕掉,要在这本书里找出“”字,那么就得一页一页的翻直到找到“”字;

      没有如果以没有加索引的字段,为条件查询百万级的表,就好比把新华字典目录撕了找“华”字;效率低下;

结论:索引=目录(主键默认加索引)

      索引方式一:

      二叉树索引  查询:log2n次

      索引方式二:

      哈希索引(散列索引)理论上降为1次;

缺点:

  1.加索引后加快了查询的速度,在insert/update/delete 时,同时需要添加到索引里,降低了增删改的速度;

  2.索引文件占用空间,索引文件大于数据文件;

 

问题:

  某网站要换服务器,导数据,一张500万行的表

  table news(

  15列,其中10列加了索引;

  )

  该如何操作让其快速导入?

  如果直接导的话,插入一条建10个索引,插入一条建立一个索引;这样就建立了5000万条索引,效率低下;

 

  解决办法:先修改表去掉索引,导入后再加索引;因为统一加索引的速度快于一条一条加;

 

使用原则:

    1.不要过度索引

    2.在查询最频繁的条件上加索引:

          如在判断用户名时,在username加索引;

          在查询商品时,在商品名上加索引;  

          给散列值的加索引,碰撞性越多,值越集中的不易加索引,如性别:男/女;

 

索引的创建语法:

    

 

posted @ 2016-11-28 17:32  上了发条的兔子  阅读(150)  评论(0编辑  收藏  举报