zoukankan      html  css  js  c++  java
  • mysql 数据库优化

    数据库优化

    SQL语句优化

    *1.开启慢查询日志,通过慢查询日志分析工具(mysqldumpslow, pt-query-digest) 分析

    *2.使用explain查询sql的执行计划

    count(*),count(id), 前者会统计出字段为null的数量,后者不会统计null的数量

    *3.使用连接查询优化子查询

    sql及索引优化

    如何建立索引?
    *1.在where从句,group by从句,order by从句,on 从句出现的列

    *2.索引字段越小越好(数据存储单位以页为单位,一页中所能存储数据越多,一次I/O获取到的数据量越大,I/O效率高)

    *3.离散度大的列放到联合索引前面

    索引维护
    重复索引:如主键列再建个unique索引
    冗余索引:如联合索引再将主键列包含进去(key(name, id)),对于innodb来说每一个索引后面都会包含主键,查看冗余索引

    select 
    
    a.TABLE_SCHEMA AS '数据名',
    
    a.TABLE_NAME AS '表名',
    
    a.INDEX_NAME AS '索引1',
    
    b.INDEX_NAME AS '索引2',
    
    a.COLUMN_NAME as '重复列名'
    
    from STATISTICS a JOIN STATISTICS b ON
    
    a.TABLE_SCHEMA = b.TABLE_SCHEMA 
    
    AND a.TABLE_NAME = b.TABLE_NAME
    
    AND a.SEQ_IN_INDEX = b.SEQ_IN_INDEX
    
    AND a.COLUMN_NAME = b.COLUMN_NAME
    

    数据库表结构优化

    1.选择合适的数据类型
    2.范式和反范式
    3.表的垂直拆分 将有很多列的表拆成多个表(不常用字段放一个表中;大字段独立放一个表中;经常一起用的放一起)
    4.水平拆分 解决数据量过大问题(上亿条)

    系统优化

    1.操作系统优化
    2.mysql配置优化

    服务器硬件优化

    1.Mysql有一些工作只能用到单核CPU

  • 相关阅读:
    MySQL设置用户
    tensorflow学习笔记12
    tensorflow学习笔记11
    tensorflow学习笔记10
    tensorflow学习笔记9
    博雅机器学习十讲10
    博雅机器学习十讲9
    博雅机器学习十讲8
    博雅机器学习十讲7
    博雅机器学习十讲6
  • 原文地址:https://www.cnblogs.com/binxyz/p/7459121.html
Copyright © 2011-2022 走看看