mysql优化思路

时间:2023-03-09 16:30:14
mysql优化思路
/*
mysql优化思路
    1.数据库设计
    2.sql语句优化
    3.数据库参数设置
    4.恰当的硬件资源和操作系统
     数据库设计
        数据的3NF(3范式)  逆范式
    3NF解释
    1NF:就是具有原子性,不可分割。(只要使用的是关系型数据库,就自动符合)  
    2NF:在满足1NF的基础上,我们考虑是否满足2NF,只要表的记录满足唯一性,
        同一张表,不可能出现完全相同的记录,(表中设计主键即可)
    3NF:在满足2NF的基础上,我们考虑是否满足3NF,即我们的字段信息可以通过关联的关系
        派生即可(通过外键即可处理)
    逆范式解释:
     
sql统计sql语句
    show status 语句
        1.查看当前执行select语句次数
            show status like 'Com_select'; 
            show session status like 'Com_select';  当前次数
            show global status like 'Com_select';全部次数
        2.当前mysql连接次数
            show status like'connections';
        3.当前mysql连接时间      
            show status like'uptime';
        4.慢查询状态
            show variables like '%quer%';
        5.慢查询默认时间
            show variables like 'long_query_time';
        6.explain检测sql语句
            explain sql语句
索引
    索引类型
        1.主键索引  primay key
        2.普通索引  index
        3.唯一索引  unique
        4.全文索引  fulltext
        5.符合索引
    创建索引       
        create [unique | fulltext] index 索引名 on 表名(列名);
        alter table 表名 add index 索引名(列名);
        alter table 表名 add primary key(列名);   
    删除索引
        drop index 索引名 on 表名;
        alter table 表名  drop index 索引名
        alter table 表名 drop primary key(列名)
    显示索引
        show index(es) from 表名
        show keys from 表名
        desc 表名       
索引注意:
    下列情况不回使用索引
        1.多列索引只在左边第一列使用索引  其余列屏蔽索引
        2.like‘%赵猛’           %开始将屏蔽索引
        3.where 条件 or 条件              sql语句出现or屏蔽索引
        4.数字型  id=2                     数字型不加引号屏蔽索引
查看索引使用率
    show status like 'handler_read%';
     
*/