mysql 开垦进级篇类别 5 SQL 优化(表优化)

一. 使用sql提示

         sql 提醒(sql hint)是优化数据库的贰个主要手腕,
是在sql语句中参加一些人工的唤起来达成优化操作的指标。

  1.1 use index
    在查询语句中表名的前边,加多use index
强制mysql使用该索引,不思量任何索引。

EXPLAIN SELECT * FROM city USE INDEX(ix1) WHERE city_id=1;

  1.2 ignore index
    在查询语句中表名的后面,增加ignore
index,使用mysql忽视二个或许多少个目录。

EXPLAIN SELECT * FROM city IGNORE INDEX(ix1) WHERE  city_id=14;

  1.3 force index
    在查询语句中表名的前边,增添force
index,当mysql不走索引时,强制走索引。

-- 某些情况下,有索引但mysql不走索引,强制使用
EXPLAIN SELECT * FROM city FORCE INDEX (PRIMARY) WHERE  city_id>0;

二 .优化数据库对象

  1. 优化表的数据类型
    在mysql中,能够运用函数procedure
analyse()对近年来选取的表展开辨析。对表列中的数据类型给出合理的改进提议,用户能够依据真实情形来思虑。
  比如:下不熟悉产库中有一个菜单表,字段类型及长度如下:

图片 1

 -- 使用procedure analyse()分析
SELECT * FROM Adm_Menu PROCEDURE ANALYSE(16,256);

    上边remark 字段里面值的最大尺寸的是30长短,
所以系统建议给出30长短:

图片 2

  2. 透过折分升高表的看望功能
    折分能够是垂直拆分和水准拆分,那是一种设计思路,那篇不讲。

  3. 逆标准化
    逆规范化也叫提升表的冗余,有助于加强查询品质。那是一种设计思路,那篇不讲。

  4. 应用中间表提升计算查询速度
    比如有三个大表记录了客户的每一天开销记录,须求按月总结总花费金额,
能够放入到中间表,缓解大表的往往查询. 这是一种设计思路,那篇不讲。

 

相关文章