尽量使用覆盖索引(只使用索引中存在的字段,减少 SELECT * 的使用)。 MySQL在使用不等于(!= 或者 )的时候无法使用索引会导致全表扫描。...IS NULL ,IS NOT NULL 也无法使用索引。 LIKE以通配符开头('%abc...')MySQL索引失效会变成全表扫描的操作。 只有模糊查询的占位符放到右边的时候索引才会生效。...3.8 索引使用列题 例题1:全值匹配我最爱 假设:index(c1,c2,c3,c4) 在MySQL中存在优化器,他会自动把我们输入 4,3,2,1 的顺序转换为 1,2,3,4 此时生效的索引:c1...c3进行排序,此时和c4没有什么关系 此时生效的索引:c1,c2 c1,c2索引都用到了,此时直接使用c4排序,导致c3出现断层,MySQL优化器不能直接进行排序,在内部进行了一次filesort内排序...排序默认是升序排序,但是此时非要实现降序排序,这就会导致MySQL发生内排序(filesort) 结论: MySQL支持两种方式的排序,FileSort以及Index,Index效率高,它指MySQL
: alter table 语句,多个修改字段之间使用逗号分隔 PyMySQL的使用 1、思考 如何实现将100000条数据插入到MySQL数据库 答案: 如果使用之前学习的MySQL客户端来完成这个操作...,那么这个工作量无疑是巨大的,我们可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删改查的方式,实现10000条数据的插入,像这样使用代码的方式操作数据库就称为数据库编程。...2、Python程序操作MySQL数据库 安装pymysql第三方包: sudo pip3 install pymysql 说明: 安装命令使用 sudo pip3 install 第三方包名 卸载命令使用...3、事务的使用 在使用事务之前,先要确保表的存储引擎是 InnoDB 类型, 只有这个类型才可以使用事务,MySQL数据库中表的存储引擎默认是 InnoDB 类型。...10 -- 因为联合索引里面没有这个组合,只有 name | name age 这两种组合 说明: 在使用联合索引的查询数据时候一定要保证联合索引的最左侧字段出现在查询条件里面,否则联合索引失效 6、MySQL
BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE AFTER INSERT,AFTER DELETE,AFTER UPDATE 创建触发器 mysql> create...table log(id int primary key auto_increment not null, -> time datetime); mysql> delimiter || mysql...where id = stuid -> ; -> end -> || Query OK, 0 rows affected (0.29 sec) mysql> delimiter...sec) mysql> select * from v_stu; // 查看表中索引 mysql> show index from student; // 创建索引 mysql> create index...stu_index on student(index); // 删除索引 mysql> drop index stu_index on student;
笔记来自于黑马程序员课程 引用站外地址 黑马程序员JavaWeb基础教程 Java web从入门到企业实战完整版 mysql高级 今日目标 掌握约束的使用 掌握表关系及建表原则 重点掌握多表查询操作...注意:MySQL不支持检查约束。 这样是不是就没办法保证年龄在指定的范围内了?从数据库层面不能保证,以后可以在java代码中进行限制,一样也可以实现要求。...,不经常使用的字段放另一张表,用于提升查询性能 实现方式 ==在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)== 案例 我们以 用户表 举例: 而在真正使用过程中发现 id、...子查询根据查询结果不同,作用不同 子查询语句结果是单行单列,子查询语句作为条件值,使用 = !...,必须使所有的数据都保持一致状态 隔离性(Isolation) :多个事务之间,操作的可见性 持久性(Durability) :事务一旦提交或回滚,它对数据库中的数据的改变就是永久的 ==说明:== mysql
MySQL提供插件式存储引擎架构 默认InnoDB,支持事务,行级锁,外键 1.1、各种存储引擎特性 2、索引 索引是帮助MySql高效查询数据的数据结构 2.1、优势 类似书籍的目标索引,提高数据检索的效率...MYSQL将查询转换为一个常量,const将主键或唯一索引的所有部分与常量进行比较 4)eq_ref:类似ref,区别在于使用的是唯一索引,使用主键关联查询,查询结果只有一条。...,则没有使用索引 3)key_len:表示索引中使用的字节数,该值为索引字段最大可能长度,根据表定义所得。...哪些列或常量被用于查找索引列上的值 3. 8、explain之extra 1)using filesort:mysql会对数据使用一个外部的索引排序,而不是根据表内的顺序进行读取,称为文件排序...2)using temporary:使用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。
Mysql高级01 MySQL高级课程简介 序号 01** 02** 03** 04** 1 基本硬件知识 体系结构 应用优化 MySQL 常用工具 2 索引 存储引擎 查询缓存优化 MySQL 日志...3 视图 优化SQL步骤 内存管理及优化 MySQL 主从复制 4 存储过程和函数 索引使用 MySQL锁问题 5 触发器 SQL优化 常用SQL技巧 1.基本硬件知识(了解) 1.1计算机工作原理...MySQL目前提供了以下4种索引: BTREE 索引 : 最常见的索引类型,大部分索引都支持 B 树索引。 HASH 索引:只有Memory引擎支持 , 使用场景简单 。...MySQL(默认使用InnoDB引擎),将记录按照页的方式进行管理,每页大小默认为16K(这个值可以修 改).linux 默认页大小为4K 7、为什么使用 B+树 1.B+树更适合外部存储,由于内节点无...2.Mysql是一种关系型数据库,区间访问是常见的一种情况,B+树叶节点增加的链指针,加强了区间访 问性,可使用在范围区间查询等,而B-树每个节点 key 和 data 在一起,则无法区间查找。
一、MySQL存储过程和函数 1.存储过程和函数的概念 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合 2.存储过程和函数的好处 存储过程和函数可以重复使用,减轻开发人员的工作量...将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理 3.存储过程和函数的区别 函数必须有返回值 存储过程没有返回值 4.创建存储过程 小知识 /* 该关键字用来声明sql语句的分隔符,告诉MySQL...这个时候就可以使用DELIMITER来指定分隔符了!...(实际参数); -- 调用stu_group存储过程 CALL stu_group(); 6.查看存储过程 查看存储过程语法 -- 查询数据库中所有的存储过程 标准语法 SELECT * FROM mysql.proc...8.9游标 游标的概念 游标可以遍历返回的多行结果,每次拿到一整行数据 在存储过程和函数中可以使用游标对结果集进行循环的处理 简单来说游标就类似于集合的迭代器遍历 MySQL中的游标只能用在存储过程和函数中
案例1:同时按顺序使用三个字段查询一条数据 mysql> select * from account_transaction where method="CASH" and trader_staff_id...案例2:使用 method 和 trader_staff_id 两个字段作为查询条件 mysql> select * from account_transaction where method="CASH...说明operator_staff_id的索引失效,并且operator_staff_id的长度为4 案例3:使用method+operator_staff_id查询 mysql> explain select...只有or连接的字段中有非索引字段时才会无效 七、数据分布影响 如果mysql评估使用索引比全表更慢,则不使用索引 mysql> explain select * from account_transaction...trade_no+amonut做一个联合索引,看两个索引都满足的时候,会使用哪一个索引 mysql> show index from account_transaction; +------------
谨记:只对本次会话有效 -- 查看Profiling的状态 show variables like 'profiling'; -- 开启profile se...
我们可以定义视图 子查询 普通查询 查询每位学生的各科成绩 mysql> select sname as 姓名, -> (select scores.score from scores inner...---+--------+ | Gage | 98.00 | | sss | 86.00 | | kksk | NULL | +--------+--------+ 范围查询 使用
MySQL高级课程简介 序号 01 02 03 04 1 基本硬件知识 体系结构 应用优化 MySQL 常用工具 2 索引 存储引擎 查询缓存优化 MySQL 日志 3 视图 优化SQL步骤 内存管理及优化...MySQL 主从复制 4 存储过程和函数 索引使用 MySQL锁问题 5 触发器 SQL优化 常用SQL技巧 1....在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。...MySQL目前提供了以下4种索引: BTREE 索引 : 最常见的索引类型,大部分索引都支持 B 树索引。 HASH 索引:只有Memory引擎支持 , 使用场景简单 。...MySQL(默认使用InnoDB引擎),将记录按照页的方式进行管理,每页大小默认为16K(这个值可以修 改).linux 默认页大小为4K 7、为什么使用 B+树 B+树更适合外部存储,由于内节点无
高级查询 关键字书写顺序 关键字执行顺序 select:投影结果 1 5 from:定位到表 2 1 where:分组前第一道过滤 ...select *,row_number() over(order by 主键列) as myid from 表 ) as temp where myid between 起始号码 and 每页数据量 --mysql...加快数据访问速度 临时表存在于系统数据库 SQL Sever : 存在于系统数据库tempdb #表名:局部临时表: 只对当前会话有效 ##表名:全局临时表 所有会话共享 MySQL...: 在会话断开销毁 所有临时表都是服务于当前连接 临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。...在mysql中是一个摆设 select *; select * from dual; select * from dual; 报错 oracle中 必须使用 from dual; select *
MySQL的优化方式有很多,大致我们可以从以下几点来优化MySQL: 从设计上优化 从查询上优化 从索引上优化 从存储上优化 查看SQL执行频率 MySQL 客户端连接成功后,通过 show [session...时,系统分配的"connection_id",可以使用函数connection_id()查看 2) user列,显示当前用户。...key : 实际使用的索引, 如果为 NULL, 则没有使用索引。...key_len : 表示索引中使用的字节数, 该值为索引字段最大可能长度, 并非实际使用长度,在不损失精确性的前提下, 长度越短越好 。...支持进一步选择all、cpu、block io 、context switch、 page faults等明细类型类查看MySQL在使用什么资源上耗费了过高的时间。
Mysql锁问题 5.1 锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。...5.3 Mysql 锁 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。...高级','2088-01-01','1'); 执行插入, 直接报错 , 由于当前tb_book 获得的是 读锁, 不能执行更新操作。...客户端 二 : 7) 执行插入操作 insert into tb_book values(null,'Mysql高级','2088-01-01','1'); 当在客户端一中释放锁指令 unlock tables...5.2.5 查看锁的争用情况 show open tables; In_user : 表当前被查询使用的次数。如果该数为零,则表是打开的,但是当前没有被使用。
MySQL 也不例外。...当数据库出现任何故障导致无法正常使用时,可以首先查 看此日志。...该日志是默认开启的 , 默认存放目录为 mysql 的数据目录, 默认的日志文件名为 hostname.err(hostname是主机名)。...此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主 从复制, 就是通过该binlog实现的。...二进制日志,MySQl8.0默认已经开启,低版本的MySQL的需 要通过配置文件开启,并配置MySQL日志的格式。
在MySQL中的事务(Transaction)是由存储引擎实现的,在MySQL中,只有InnoDB存储引擎才 支持事务。...事务操作 MySQL的事务操作主要有以下三种: 1、开启事务:Start Transaction 任何一条DML语句(insert、update、delete)执行,标志事务的开 启 命令:BEGIN...自动帮我们完成的,每执行一条SQL时MySQL就 帮我们自动提交事务,因此如果想要手动控制事务,则必须关闭MySQL的事务自动提交。...在 MySQL中直接用 SET 来改变 MySQL 的自动提交模式: set autocommit=0 禁止自动提交 set autocommit=1 开启自动提交 create database if...但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
内置函数 概念 在开发称之为 ‘方法’ 将一组逻辑语句在方法体中 对外暴露的方法名 作用 1隐藏代码实现细节 2提高代码的重性 调用方法 select 函数名 ...
概念 据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、 更新和删除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。...MySQL的核心就是存储引擎。...用户可以根据 不同的需求为数据表选择不同的存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql的所有 执行引擎我们 可以到 默认的执行引擎是innoDB 支持事务,行级锁定和外键。...关闭mysql服务 2. 找到mysql安装目录下的my.ini文件: 3....启动mysql服务
相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的 锁机制。...下表中罗列出了各存储引擎对锁的支持情况: MySQL锁的特性可大致归纳如下 : 从上述特点可见,很难笼统地说哪种锁更好,只能就具体应用的特点来说哪种锁更合适!...MyISAM 存储引擎只支持表锁 表锁特点 -- MySQL的锁机制 drop database if exists mydb14_lock; create database mydb14_lock
事件 Execute权限代表允许执行存储过程和函数的权限 File权限代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select...权限表结构中的特殊字段: Plugin,authentication_string字段存放用户认证信息 Password_expired设置成’Y’则表明允许DBA将此用户的密码设置成过期而且过期后要求用户的使用者重置密码...等命令创建用户或修改用户密码时此数值自动更新 Password_lifetime代表从password_last_changed时间开始此密码过期的天数 Account_locked代表此用户被锁住,无法使用...Localhost代表本机, 127.0.0.1代表ipv4本机地址, ::1代表ipv6的本机地址 Host_name字段允许使用%和_两个匹配字符,比如’%’代表所有主机, ’%.mysql.com...状态 # 修改用户为unlock mysql> alter user abc2@'localhost' account unlock; 当客户端使用lock状态的用户登录MySQL时,会收到如此报错 Access
领取专属 10元无门槛券
手把手带您无忧上云