zoukankan      html  css  js  c++  java
  • Mysql优化

    1.索引的含义及特点:

     *索引是一种对数据库表中一列或多列的值进行排序并独立存储在磁盘中的数据结构

     *索引是通过数据库引擎实现的,不同数据库引擎具有不用的索引实现方式

     *索引的存储结构主要有BTree和Hash两种

     *MyISAM和InnoDB索引使用BTree,Memory使用Hash

    2.索引的优点:

     *加快数据的查询速度

     *加快表与表之间连接的速度

     *加快分组和排序的速度

    3.索引的缺点:

     *创建和维护索引需要时间

     *索引需要占用磁盘空间

     *对数据库表中记录增删改时,需要动态维护索引

    4.索引的分类:

     *普通索引和唯一索引(不允许重复,但允许为空)

     *单列索引和组合索引(遵循最左前缀原则)

     *全文索引(可在列中进行某值的全文查找)——MyISAM

     *空间索引——MyISAM

    5.索引的设计原则

     *并非索引越多越好

     *当数据库表中记录经常修改时,不宜使用索引

     *当数据库表中记录较少时,不宜使用索引

     *当数据库表中记录的不用值较少时,不宜使用索引

     *当数据库表中记录具有唯一性的特性时,使用唯一索引

     *当数据库表中具有较多的分组和排序操作时,使用索引

    6.查询优化

     *使用DESC或EXPLAIN分析查询语句

     *Mysql提高查询效率最有效的方式是使用索引

     *考虑索引失效的几种情况

     *优化子查询:使用连接查询替代子查询

    7.索引失效的几种情况

     *LIKE语句中’%‘出现在匹配的第一个字段;

     *组合索引不遵循最左前缀原则

     *OR关键字前后的值都得有索引

     *数据库中记录较少时

    8.数据库结构优化

     *将具有很多字段的表拆分成多个表

     *增加中间表

     *增加冗余字段

     *优化数据插入速度

     *分析(ANALYZE)、检查(CHECK)、优化(OPTIMISE)表——查看关键字分布、查看是否有错误、优化数据库表空间

    9.优化数据插入速度

     *MyISAM

       *禁用索引

       *禁用唯一性检查

       *使用多值插入

       *使用Load IN File

     *InnoDB

       *禁用唯一性检查

       *禁用外键

       *禁止事务提交

    10.Mysql服务器优化

     *硬件升级

     *参数调优

  • 相关阅读:
    <转> 解决异常:IllegalStateException: Fragment <ThisFragment> is not currently in the FragmentManager
    带你走进Android Afinal框架的世界
    Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
    Myeclipse启动不了的解决方法
    select 禁止 选择
    jquery的clone方法应用于textarea和select的bug修复不能copy值,clone id重复的解决
    玩javaweb的web.xml编译路径
    程序员笔记之设计(一)
    Eclipse清除SVN密码
    Java 最简单的批处理
  • 原文地址:https://www.cnblogs.com/dyj-blog/p/9626409.html
Copyright © 2011-2022 走看看