MySQL数据库中的键和索引的概念

发布时间:2021-08-30 11:18:50 作者:chen
来源:亿速云 阅读:183

本篇内容主要讲解“MySQL数据库中的键和索引的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库中的键和索引的概念”吧!

1.键的概念
# id为主键  name是唯一键
create table Mark(id int not null primary key ,name varchar(250) unique key);
create table Mark(id int, name varchar(250), primary key(id), unique key(name));
create table students_to_teacher(to_id int, stu_id int, tea_id int, foreign key(stu_id) references students(id), foreign key(tea_id) references teacher(id));
2.索引的概念
3.索引类型
# 创建普通索引
create index 索引名称 on 表名(列名)
# 删除普通索引
drop index 索引名称 on 表名
# 查看索引
show index from 索引名
# 创建唯一索引
create unique index 索引名称 on 表名(列名)
# 删除唯一索引
drop unique  index 索引名称 on 表名
4.引优化策略
5.Innodb 存储引擎
-rw-rw---- 1 mysql mysql    65 8月  27 14:31 db.opt
    -rw-rw---- 1 mysql mysql  8614 8月  27 14:31 students.frm
    -rw-rw---- 1 mysql mysql 98304 8月  27 14:31 students.ibd
    db.opt文件:主要用来存储当前数据库的默认字符集和字符校验规则
    students.frm文件:存放表结构的
    students.ibd文件:存储了当前表的数据和相关的索引数据
    因此,表数据和表结构分离, 每个表单独使用一个表文件来存储数据和索引
6.MyISAM 存储引擎
-rw-rw---- 1 mysql mysql  10630 8月  27 13:12 user.frm
-rw-rw---- 1 mysql mysql    504 8月  27 13:15 user.MYD
-rw-rw---- 1 mysql mysql   2048 8月  27 14:30 user.MYI
user.frm:为表结构
user.MYD:为表数据
user.MYI:为表索引
7.MySQL的并发访问控制
# lock tables 方式施加锁
lock tables 表名称 read   # 读锁
lock tables 表名称 write  # 写锁
# 给表解锁    
unlock tables;    
# flush tables 方式施加锁
flush tables 表名称 with read lock;   #读锁
flush tables 表名称 with write lock;  # 写锁
8.MySQL事务机制

事物日志:

ACID机制:

9.MySQL 查询缓存机制
1.query_cache_min_res_unit:查询缓存分配内存块的最小的分配单位,较小的值较少内存浪费,但是会导致更加平凡的内存分配操作 ,较大的值会导致浪费
2.query_cache_limit:能够缓存的最大查询结果,对有较大结果的查询语句,建议在select中使用SQL_NO_CACHE
3.query_cache_size:查询缓存总共可用的内存空间,单位是字节,必须是1024整数倍
4.query_cache_type:ON , OFF , DEMAND
5.query_cache_wlock_invalidate:如果某个数据表被其他的连接锁定,是否仍然可以从查询缓存中返回结果,默认值为off,表示可以返回数据,on为不允许
缓存命中率计算公式: Qcache_hits / (Qcache_hits+Com_select)

MySQL数据库中的键和索引的概念

10.MySQL 日志分类
general_log = {ON|OFF}  # 是否启用查询日志
general_log_file = /logs/mysql/general_log  # 当log_output为FILE类型时,日志信息的记录位置;
log_output = {TABLE|FILE|NONE} 
log_output = TABLE,FILE
1.执行时长超出指定时长的操作 
show global variables like 'long_query_time'; 查看指定的时长
set global long_query_time = 自定义时长
2.slow_query_log = {ON|OFF}:是否启用慢查询日志
set global slow_query_log = ON
3.slow_query_log_file = mariadb1-slow.log
# 过滤条件
4.log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk 
5.log_slow_rate_limit = 1 指定记录速率
6.log_slow_verbosity = 指定内容级别
# 错误日志信息产生的来源
    mysqld启动和关闭过程中输出的信息;
    mysqld运行中产生的错误信息;
    event scheduler运行一个event时产生的日志信息
    在主从复制架构中的从服务器上启动从服务器线程时产生的日志信息;
# 如何开启错误日志
    log_error = /path/to/somefile
    log_warnings = {ON|OFF}:是否记录警告信息于错误日志中;
# 日志记录的格式分类
    基于“SQL语句”记录: statement
    基于“行”记录:row
    “混合模式” :mixed,系统自行判断
# 二进制日志文件的构成
    日志文件:mysql-bin.文件序号 
        例如: mysql-bin.000001
    索引文件:mysql-bin.index 
        例如:mysql-bin.index
11.MySQL 备份策略的注意点
1.站在数据集是否完整的角度上
    完全备份,部分备份 
2.站在完全备份的基础上
    增量备份,差异备份 
3.站在是否影响数据集读写的角度上
    热备份:在线备份,读写操作不受影响;
    温备份:在线备份,读操作可继续进行,但写操作不允许
    冷备份:离线备份,数据库服务器离线,备份期间不能为业务提供读写服务
    MyISAM存储引擎: 能够实现温备
    InnoDB存储引擎: 能够实现热备
4.站在数据存储角度上
    物理备份:直接复制数据文件进行的备份
    逻辑备份:从数据库中“导出”操作数据的SQL语句,再执行,实现备份
12.备份策略需要考虑的因素
13.数据库备份具体解决方案
14.备份工具介绍
15.MySQL 半同步复制模型

到此,相信大家对“MySQL数据库中的键和索引的概念”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. MySQL数据库的索引和事务
  2. mysql中的键和索引关系

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 数据库

上一篇:python中Process对象之join方法的示例分析

下一篇:java8中NIO缓冲区Buffer数据存储的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》