• SQL 优化大全


    MySQL的基本架构

     左边的client可以看成是客户端,客户端有很多,CMD黑窗口,用于学习的WorkBench,Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成是Server(MySQL的服务端),我们将Server在细分为sql层和存储引擎层。当查询出数据以后,会返回给执行器。执行器一方面将结果写到查询缓存里面,当你下次再次查询的时候,就可以直接从查询缓存中获取到数据了。另一方面,直接将结果响应回客户端

    查询数据库的引擎

    ① show engines;

      ② show variables like “%storage_engine%”; 

     

    3)指定数据库对象的存储引擎

    create table tb(
        id int(4) auto_increment,
        name varchar(5),
        dept varchar(5),
        primary key(id)
    ) engine=myISAM auto_increment=1 default charset=utf8;

    索引、

    ③ 复合索引

    多个列共同构成的索引。比如说我们创建这样一个“复合索引”(name,age),先利用name进行索引查询,当name相同的时候,我们利用age再进行一次筛选。注意:复合索引的字段并不是非要都用完,当我们利用name字段索引出我们想要的结果以后,就不需要再使用age进行再次筛选了。

    (1)创建索引的第一种方式

    创建单值索引

    create index dept_index on tb(dept);

    创建唯一索引:这里我们假定name字段中的值都是唯一的

    create unique index name_index on tb(name);

    创建复合索引

    create index dept_name_index on tb(dept,name);

    (2)创建索引的第二种方式----------------》语法:alter table 表名 add 索引类型 索引名(字段)

    创建单值索引

    alter table tb add index dept_index(dept);

    创建唯一索引:这里我们假定name字段中的值都是唯一的

    alter table tb add unique index name_index(name);

    创建复合索引

    alter table tb add index dept_name_index(dept,name);


    索引删除和索引查询

    ① 索引删除

    语法:drop index 索引名 on 表名;

    drop index name_index on tb;

    ② 索引查询

    语法:show index from 表名;

    show index from tb;



    1)查看执行计划

    语法:explain + SQL语句

    eg:explain select * from tb;

    2)“执行计划”中需要知道的几个“关键字”

    id:编号
    select_type:查询类型
    table:表
    type:类型
    possible_keys:预测用到的索引
    key:实际使用的索引
    key_len:实际使用索引的长度
    ref:表之间的引用
    rows:通过索引查询到的数据量
    Extra:额外的信息



  • 相关阅读:
    oracle 如何用触发器实现更新刚插入的数据
    数据库好论坛
    不同的用户导入数据库
    用函数式编程技术编写优美的 JavaScript
    使用GridView自带的ToolTip隐藏过长的数据
    含有dropdownlist的gridview增删改查
    数据分析
    数据分析
    xshell链接vbox 上 nat 方式链接虚拟机
    测试开发方法概述
  • 原文地址:https://www.cnblogs.com/KL2016/p/16079528.html
Copyright © 2020-2023  润新知