zoukankan      html  css  js  c++  java
  • mysql日常优化细节

    # sql语句优化
    >
    1)使用limit限制一次性查询出的数据量
    2)链接查询代替子查询
    3)尽量不要使用select * ,将需要查找的字段列出来
    4)如果数据量特别大的话尽量将一条复杂的sql拆分成多个sql完成功能
    5)使用!=以及<>不等于的时候,mysql不使用索引

    6) 在使用like的时候,以%开头,即"%***"的时候无法使用索引

    7) 在使用or的时候,要求or前后字段都有索引

    8) 超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致;多表关联查询时,保证被关联的字段需要有索引。 说明:即使双表 join 也要注意表索引、SQL 性能

    9) 

    # 选择合适的数据类型

    > (1)使用可存下数据的最小的数据类型,整型 < date,time < char,varchar < blob
    (2)使用简单的数据类型,整型比字符处理开销更小,因为字符串的比较更复杂。如,int类型存储时间类型,bigint类型转ip函数
    (3)使用合理的字段属性长度,固定长度的表会更快。使用enum、char而不是varchar
    (4)尽可能使用not null定义字段
    (5)尽量少用text,非用不可最好分表

    (6)状态属性最好用tinyint类型

    # 选择合适的索引列
    > (1)查询频繁的列,在where,group by,order by,on从句中出现的列
    (2)where条件中<,<=,=,>,>=,between,in,以及like 字符串+通配符(%)出现的列
    (3)长度小的列,索引字段越小越好,因为数据库的存储单位是页,一页中能存下的数据越多越好
    (4)离散度大(不同的值多)的列,放在联合索引前面。查看离散度,通过统计不同的列值来实现,count越大,离散程度越高:

    ```
    mysql> SELECT COUNT(DISTINCT column_name) FROM table_name;
    ```

    # 学会使用命令分析数据库

    ## SHOW查看状态
    ```
    mysql> SHOW [SESSION|GLOBAL] STATUS LIKE '%Status_name%';
    session(默认):取出当前窗口的执行
    global:从mysql启动到现在
    ```
    > 查看查询次数(插入次数com_insert、修改次数com_insert、删除次数com_delete)
    ```
    mysql> SHOW STATUS LIKE 'com_select';
    ```

    > 查看连接数(登录次数)
    ```
    mysql> SHOW STATUS LIKE 'connections';
    ```

    > 数据库运行时间

    ```
    mysql> SHOW STATUS LIKE 'uptime';
    ```

    > 查看慢查询次数

    ```
    mysql> SHOW STATUS LIKE 'slow_queries';
    ```

    > 查看索引使用的情况:

    ```
    mysql> SHOW STATUS LIKE 'handler_read%';
    - handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。
    - handler_read_rnd_next:这个值越高,说明查询低效。
    ```

    ## 显示系统变量

    ```
    mysql> SHOW VARIABLES LIKE '%Variables_name%';
    ```

    ## 显示InnoDB存储引擎的状态

    ```
    mysql> SHOW ENGINE INNODB STATUS;
    ```

    ... 持续补充中

  • 相关阅读:
    Apache Cassandra 4.0新特性介绍
    NoSQLBench压测工具入门教程
    赵洋:深入了解Materialized View
    PHP与ECMAScript_1_变量与常量
    HTTP_5_通信数据转发程序:代理、网关、隧道
    HTTP_4_返回结果的HTTP状态码
    HTTP_3_HTTP报文
    HTTP_2_HTTP协议概要
    HTTP_1_Web及网络基础
    一个完整的产品设计流程——家庭安全管家
  • 原文地址:https://www.cnblogs.com/myblogs-miller/p/9112688.html
Copyright © 2011-2022 走看看