zoukankan      html  css  js  c++  java
  • mysql 索引

    什么是mysql索引?

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

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

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

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

          索引方式一:

          二叉树索引  查询:log2n次

          索引方式二:

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

    缺点:

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

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

    问题:

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

      table news(

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

      )

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

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

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

    使用原则:

        1.不要过度索引

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

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

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

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

    索引的创建语法:

        

  • 相关阅读:
    [Go] Slices vs Array
    [置顶] SpecDD系列:“完成” 的定义
    关于游戏开发的一点随笔
    提高效率 常用的几个xcode快捷键
    关于android 自己实现 back键 home键
    (组合数学3.1.1.1)POJ 1146 ID Codes(字典序法)
    [置顶] c# asp.net 修改webconfig文件 配置
    python数据类型和3个重要函数
    jdk环境变量配置
    VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库
  • 原文地址:https://www.cnblogs.com/demolzhi/p/6110509.html
Copyright © 2011-2022 走看看