美文网首页
MYSQL sql优化我的心得

MYSQL sql优化我的心得

作者: 大黑跟小白的日常 | 来源:发表于2019-02-22 22:15 被阅读404次

1、字段空间能小则小,索引不该建立在大字段上;

2、索引字段设置not null 给默认值;

3、使用ENUM、TINYINT类型比文本类型效率高;

4、选择离散程度大的字段建立索引;

5、索引应建立在那些将用于JOIN、WHERE条件判断、ORDERBY排序的字段上;

6、在大量数据转移(插入到新表)时,将数据先转移到一个没有索引(除了主键)的表上,再建立其它索引,这样比,直接转移到一个已经创建好索引的表上,前者效率要高很多;

7、数据插入采用批量操作;如 INSERT INTO t (id, name) VALUES(1,’Bea’), (2,’Belle’),(3,’Bernice’);不要一条一条插入;

8、in条件中的子查询集用关联查询后where条件判断代替;

    如SELECT * FROM customerinfo WHERE CustomerID NOT IN(SELECT CustomerID FROM salesinfo);

    用SELECT * FROM customerinfo LEFT JOIN salesinfo ON customerinfo.CustomerID=salesinfo.CustomerID WHERE salesinfo.CustomerID IS NULL;

9、字段子查询,如果子查询目标表的数据比较少,可以使用;

10、减少独占的范围;

    如事务操作

    BEGIN;INSERT INTO salesinfo SET CustomerID=14; UPDATE inventory SET Quantity=11 WHERE item='book';COMMIT; 这样的独占范围就太大了(数据库级别)

    用如下代替

    LOCK TABLE inventory WRITE SELECT Quantity FROM inventory WHERE Item='book'; // 只锁住需要同步修改操作对应的位置

    INSERT INTO salesinfo SET CustomerID=14;

    UPDATE inventory SET Quantity=11 WHERE Item='book';UNLOCK TABLES;

    如上即保证了insert 操作、update操作的同步,也尽力的减少了因为同步需要独占表的范围;

11、最好是在相同类型的字段间进行比较的操作;

12、在建有索引的字段上尽量不要使用函数进行操作;

13、在搜索字符型字段时,我们有时会使用LIKE关键字和通配符,这种做法虽然简单,但却也是以牺牲系统性能为代价的;

    例如:下面的查询将会比较表中的每一条记录。

    SELECT* FROM books

    WHERE name like"MySQL%";

    但是如果换用下面的查询,返回的结果一样,但速度就要快上很多:

    SELECT* FROM books

    WHERE name>="MySQL"and name<"MySQM";

14、应该注意避免在查询中让MySQL进行自动类型转换,因为转换过程也会使索引变得不起作用;

15、ORDER BY NULL禁止排序

    SELECT goods_id,count(*) FROM t GROUP BY goods_id;

     默认情况下,MySQL对所有GROUP BY col1,col2…的字段进行排序。

    如果查询包括GROUP BY,想要避免排序结果的消耗,则可以指定ORDER BY NULL禁止排序;

待续....

相关文章

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • MYSQL sql优化我的心得

    1、字段空间能小则小,索引不该建立在大字段上; 2、索引字段设置notnull给默认值; 3、使用ENUM、TIN...

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • MySQL数据库与SQL优化

    一、MySQL数据库 - SQL优化 MySQL DBMS - MySQL Database Management...

  • 详解MySQL之SQL优化(1)

    MySQL学习笔记(6) SQL优化(1) 优化SQL的一般步骤 本文所涉及案例表来自MySQL的案例库sakil...

  • SQL审核优化建议

    SQL审核优化建议 数据库类型 MySQL:RDS MySQL、PolarDB MySQL、MariaDB、Pol...

  • 1 mysql的架构介绍

    1.1 Mysql简介 1.1.1 概述 1.1.2 高级MySQL mysql内核 sql优化工程师 mysql...

  • 2018-07-01

    SQL优化改写之美--MySQL虚拟列、伪列实现对SQL的优化 慢SQL文本如下: SQL执行时长达38S,获取3...

  • 千万级MySQL数据库建立索引,提高性能的秘诀

    实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

网友评论

      本文标题:MYSQL sql优化我的心得

      本文链接:https://www.haomeiwen.com/subject/qluyyqtx.html