MySQL数据库(十一)_查询缓存

查询的执行路径

查询缓存

查询缓存原理( Query Cache )

缓存SELECT操作或预处理查询的结果集和SQL语句,当有新的SELECT语句或预处理查询语句请求,先去查询缓存,判断是否存在可用的记录集,判断标准:与缓存的SQL语句,是否完全一样,区分大小写

优缺点

不需要对SQL语句做任何解析和执行,当然语法解析必须通过在先,直接从Query Cache中获得查询结果,提高查询性能
查询缓存的判断规则,不够智能,也即提高了查询缓存的使用门槛,降低效率
查询缓存的使用,会增加检查和清理Query Cache中记录集的开销

哪些查询可能不会被[……]

继续阅读

MySQL数据库(十)_服务器配置

服务器配置

  1. [mysqld]选项服务器系统变量服务器状态变量

官方文档:Full List of MariaDB Options, System and Status Variables

注意:其中有些参数支持运行时修改,会立即生效;有些参数不支持,且只能通过修改配置文件,并重启服务器程序生效;有些参数作用域是全局的,且不可改变;有些可以为每个用户提供单独(会话)的设置

一、服务器选项
1. 获取mysqld的可用选项列表:

  1. 设置服务器选项方法:
    在命令行中设置

在配置文件my.cnf中设置

二、服务器系统变量:分全局和会话两种

  1. 获[……]

    继续阅读

MySQL数据库(九)_存储引擎

MySQL架构

存储引擎

官方文档:存储引擎比较

存储引擎

MyISAM存储引擎

  1. MyISAM引擎特点
    • 不支持事务
    • 表级锁定
    • 读写相互阻塞,写入不能读,读时不能写
    • 只缓存索引
    • 不支持外键约束
    • 不支持聚簇索引
    • 读取数据较快,占用资源较少
    • 不支持MVCC(多版本并发控制机制)高并发
    • 崩溃恢复性较差
    • MySQL5.5.5前默认的数据库引擎
  2. MyISAM存储引擎适用场景
    • 只读(或者写较少)、表较小(可以接受长时间进行修复操作)
  3. MyISAM引擎文件
    • tbl_name.frm 表格式定义
    • tbl_name.MYD 数据文件
    • tbl_name.MYI 索引文件

InnoDB存储引擎

  1. In[……]

    继续阅读

MySQL数据库(八)_用户管理

MySQL用户和权限管理

  1. 元数据数据库:mysql
  2. 系统授权表:
    db, host, user
    columns_priv, tables_priv, procs_priv, proxies_priv
  3. 用户账号:
    ‘USERNAME’@’HOST’
    @’HOST’:
  4. 主机名
    IP地址或Network
    通配符: % _
    示例:172.16.%.%
  5. 查看系统账户

用户管理

  1. 创建用户:CREATE USER
    默认权限:USAGE
  1. 用户重命名:RENAME USER
  1. 删除用户:
  1. 修改密码:
  • 忘记管理员密码的解决办法:
    1. 启动mysqld进程前,添加这2条配置vim /e[......]

      继续阅读

MySQL数据库(七)_视图、函数、储存过程及触发器

视图

VIEW,虚表,保存有实表的查询结果

  1. 创建方法:
    格式

示例:

  1. 查看视图定义:
    格式:

示例:

  1. 删除视图:
  1. 查看是表是视图”comment:view”为视图

视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对基表实现;其修改操作受基表限制

函数

  1. 函数:系统函数和自定义函数
  2. 系统函数:官方手册
  3. 创建的函数保存在mysql.proc表中

创建函数

  1. 有参函数
    格式:
  1. 无参UDF
  1. 查看函数列表:
  1. 查看函数定义
  1. 删除UDF:
  1. 调用自定义函数语法:[……]

    继续阅读

MySQL数据库(六)_SQL语句之JOIN

SQL JOINS

JOIN

  1. 交叉连接:CROSS JOIN
    笛卡尔乘积
  2. 内连接:INNER JOIN
    等值连接:让表之间的字段以“等值”建立连接关系;
  1. 左外连接:LEFT JOIN

格式

  1. 右外连接: RIGHT JOIN
  1. 完全外连接:FULL JOIN

这里再详细说明下左右外连接:
现有表A

这有表B

2个表有共同点就是都有stuid,现在我们来左连接:

左连接,所有左边的A表就保留,B表往上填充,A表没有的就为NULL,B表

如果是右连接,则[……]

继续阅读

MySQL数据库(五)_SQL语句之DQL

SQL语句分类:

  1. DDL: CREATEDROPALTER
  2. DML: INSERTDELETEUPDATE
  3. DCL: GRANTREVOKECOMMITROLLBACK
  4. DQL: SELECT

DQL语句

SELECT

格式

  1. 字段显示可以使用别名:

限制子句

  1. WHERE子句:
    指明过滤条件以实现“选择”的功能:
    • 算术操作符:+-*/%
    • 比较操作符:=,<=>(相等或都为空),<>, !=(非标准SQL), >[......]

      继续阅读

MySQL数据库(四)_SQL语句之DML

SQL语句分类:

  1. DDL: CREATEDROPALTER
  2. DML: INSERTDELETEUPDATE
  3. DCL: GRANTREVOKECOMMITROLLBACK
  4. DQL: SELECT

DML语句(增删改)

DML: INSERT, DELETE, UPDATE

INSERT

一次插入一行或多行数据
示例:

UPDATE

格式

示例:

注意:一定要有限制条件,否则将修改所有行的指定字段
限制条件:WHERELIMITORDER BY
mysql -U 可以限制up[……]

继续阅读

MySQL数据库(三)_SQL语句之DDL

SQL语句分类:

  1. DDL: CREATEDROPALTER
  2. DML: INSERTDELETEUPDATE
  3. DCL: GRANTREVOKECOMMITROLLBACK
  4. DQL: SELECT

DDL语句

库操作:

1. 查看数据库列表:

2. 查看支持所有字符集:

3. 查看支持所有排序规则:

4. CREATE 创建数据库:

5. USE 进入数据库

6. ALTER 修改数据库:

7. DROP 删除数据库

6. 获取命令使用帮助:

[……]

继续阅读

MySQL数据库(二)_SQL基础与数据类型

SQL基础

关系型数据库的常见组件
1. 数据库:database
2. 表:table
3. 行:row
4. 列:column
5. 索引:index
6. 视图:view
7. 用户:user
8. 权限:privilege
9. 存储过程:procedure
10. 存储函数:function
11. 触发器:trigger
12. 事件调度器:event scheduler,任务计划

SQL语言规范
+ 在数据库系统中,SQL语句不区分大小写(建议用大写)
+ SQL语句可单行或多行书写,以“;”结尾
+ 关键词不能跨多行或简写,用空格和缩进来提高语句的可读性
+ 子句通[……]

继续阅读