MySQL学习笔记 8 -性能优化

  1. SHOW STATUS LIKE ‘value'; 查询MySQL数据库的性能。
    value参数
    • Connections:连接MySQL服务器的次数
    • Uptime:MySQL服务器的上线时间
    • Slow_queries:慢查询的次数
    • Com_lelect:查询操作的次数
    • Com_insert:插入操作的次数
    • Com_delete:删除操作的次数
  2. 查询MySQL服务器的连接次数:SHOW STATUS LIKE 'Connections';
  3. 优化查询
    1. 分析语句查询
      1. EXPLAIN SELECT语句;
      2. DESCRIBE SELECT 语句;
    2. 索引对查询速度的影响
      1. 分析查询优化:EXPLAIN 数据库查询语句
      2. 使用索引不但会自动优化查询效率,同时也降低服务器的开销。
    3. 使用索引查询
      1. 应用LIKE关键字优化索引查询
        如果匹配字符串中,第一个字符为百分号”%“时,索引不会被使用,如果”%“所在匹配字符串的位置不是第一位置,则索引会被正常使用。
      2. 查询语句中使用多列索引
        CREATE INDEX index_student_info ON studentinfo(name, sex);
        索引必须是应用第一个字段才可以正常使用。
      3. 查询语句中使用OR关键字
        要求查询的两个字段必须同为索引,如果所搜索的条件中,有一个字段不为索引,则在查询中不会应用索引进行查询。
  4. 优化数据库结构
    1. 将字段很多的表分解成多个表
    2. 增加中间表
    3. 优化插入记录的速度
      1. 禁用索引
        禁用索引的语句:ALTER TABLE 表名 DISABLE KEYS;
        重新开启索引的语句:ALTER TABLE 表名 ENABLE KEYS;
      2. 禁用唯一检查性
        SET UNIQUE_CHECKS=0;
        重新开启唯一性检查的语句:SET NINQUE_CHECKS=1;
      3. 优化INSERT语句
        当插入大量数据时,建议使用一个INSERT语句插入多条记录的方式;而且,如果能用LOAD DATA INFILE语句,就尽量使用LOAD DADTA INFILE语句,因为LOAD DATA INFILE语句导入的速度比INSERT语句的速度快。
        INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] 
            [INTO] tbl_name [(col_name,...)]     VALUES ({expr | DEFAULT},...),(...),... 
            [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
    4. 分析表
      基本语法:ANALYZE TABLE 表名1[表名2...];
    5. 检查表
      基本语法:CHECK TABLE 表名1[,表名2][option]
      能够检查InnoDB和MyISAM类型的表是否存在错误;而且,该语句还可以检查视图是否存在错误。
    6. 优化表
      MySQL中使用OPTIMIZE TABLE 语句来优化表,基本语法:OPTIMIZE TABLES 表名1[表名2...];
      通过OPTIMIZE TABLE 语句可以消除删除和更新造成的磁盘碎片,从而减少空间的浪费。该语句在执行过程中也会给表加上只读锁。
  5. 查询高速缓存
    1. 检查高速缓存是否开启
      SHOW VARIABLES LIKE '%quer_cache %';
    2. 使用高速缓存
      SELECT SQL_CACHE * FROM 表名;
      一旦表有变化,查询这个表的高速缓存将会失效,且将从高速缓存中删除。这样防止查询从旧表中返回无效数据。另外,不使用高速缓存查找可以应用SQL_NO_CACHE关键字。
  6. 优化多表查询
  7. 优化表设计
    1. 在设计数据表时应优先考虑使用特定字段长度,后考虑使用变长字段。
    2. 使用OPTMIZE TABLE命令处理用户经常操作的表。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值