day44 mysql高级部分内容】的更多相关文章

复习 1.多表查询 2.navicat 3.pymysql 1.视图 ***(是一个虚拟表,非真实存在的) 引子 select * from emp left join dep on emp.dep_id = dep.id union select * from emp right join dep on emp.dep_id = dep.id; create view temp(emp_id,emp_name,salary,dep_id,dep_id2,dep_name,work) as se…
原文:Mysql高级之索引 索引:是针对数据所建立的目录. 作用: 可以加快查询速度 负面影响: 降低了增删改的速度. 索引的创建原则: 1:不要过度索引 2:在where条件最频繁的列上加.在重复度高的列上不加,比如性别男女: 3:尽量索引散列值,过于集中的值加索引意义不大. 索引的类型 普通索引: index 仅仅是加快查询速度. 唯一索引: unique index 行上的值不能重复 主键索引: primary key 不能重复. 主键必唯一,但是唯一索引不一定是主键. 一张表上,只能有一…
原文:Mysql高级之主从复制 主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样! 原理: 对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog文件,用来读取master里面binlog(有必要开启binlog,相当于备份),当然要有权限读取是吧,这就需要用到上次的权限配置啦!和普通登录没什么差别. 主做出什么动作,从也做出什么动作. 这时就需要注意主配置文件里面binlog-format ,里面值为row,二进制记录是磁盘变化:值为sta…
前言:本来小表驱动大表的知识应该在前面就讲解的,但是由于之前并没有学习数据批量插入,因此将其放在这里.在查询的优化中永远小表驱动大表. 1.为什么要小表驱动大表呢 类似循环嵌套 for(int i=5;.......) { for(int j=1000;......) {} } 如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗.这就是为什么要小表驱动大表. 2.数据准备 根据MySQL高级知识(十)—…
前言:本章主要讲解MySQL主从复制的操作步骤.由于环境限制,主机使用Windows环境,从机使用用Linux环境.另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查询相关资料. 1.主从复制的基本原理 slave会从master读取binlog来进行数据同步.主要有以下三个步骤: ①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log events). ②slave将master的binary log…
前言:前面学习了表锁的相关知识,本篇主要介绍行锁的相关知识.行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高. 0.准备 #1.创建相关测试表tb_innodb_lock,注意数据库引擎为InnoDB. drop table if exists test_innodb_lock; CREATE TABLE test_innodb_lock ( a ), b ) ) ENGINE INNODB DEFAULT charset = utf8; ,'…
前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素.从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂. 1.锁的分类 #1.从对数据操作的类型来分 读锁(共享锁)和写锁(排它锁) #2.从对数据操作的粒度来分 表锁和行锁 2.表锁(偏读) 特点:偏向MyISAM存储引擎…
前言:全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能. 1.如何开启 #1.通过my.cnf配置开启该功能. 注:对my.cnf文件配置后,需重启mysql. ①通过命令查看全局查询日志是否开启成功. ②查看全log_globalquery.log文件中的内容. 该log文件记录执行过的sql语句. #2.通过命令开启该功能. 通过以上配置,执行过的sql语句将会记录到mysql库中general_log表里. 2.总结 ①通过命令方式开启该功能…
前言:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量.默认情况下处于关闭状态,并保存最近15次的运行结果. 1.分析步骤 #1.开启Show Profile功能,默认该功能是关闭的,使用前需开启. #2.根据MySQL高级知识(十)——批量插入数据脚本中的数据脚本向tb_emp_bigdata表中插入50w条数据.然后执行如下查询语句: limit ; ; #3.通过show profiles查看结果. #4.使用sho…
前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( id int unsigned primary key auto_increment, deptno mediumint unsigned , dname ) not null default '', loc ) not null default '' )engine=innodb default…