随笔分类 - Mysql
摘要:order by sql sort_buffer Mysql进行排序的时候会分配每个线程分配一块内存用于排序 全字段排序 过程 分析 rowid排序 这个排序是专门针对单行数据很大的情况的 max_length_for_sort_data 排序单行数据最大长度,如果超过这个最大长度就会选用rowid
阅读全文
摘要:数据准备 Index Nested Loop Join sql 执行流程 执行效率 Block Nested Loop Join sql 执行流程 执行效率 如果表t1过大 执行流程2 执行效率 优化 小表 join_buffer设置更大空间 重要:加索引
阅读全文
摘要:count( )为什么慢? MyISAM MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count( ) 的时候会直接返回这个数,效率很高; InnoDB 而 InnoDB 引擎就麻烦了,它执行 count( ) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。 因为,inn
阅读全文
摘要:字符索引优化 引入 假如有一个系统,使用的是邮箱作为账号的,每次登陆都要查询邮箱,如果不给邮箱加索引的话,每一次查询都是全表查询,所以给邮箱加索引是必需的,但是如果给邮箱加普通索引的话又感觉浪费空间 前缀索引 添加索引 索引结构 搜索区别 使用index1 1.直接搜索index1的索引树,找到zh
阅读全文
摘要:MySQL多索引查询选择 MySQL选择索引 引入 我们知道我们一个表里面可以有多个索引的,那么我们查询数据的时候不指定索引,MySQL就会帮我们自动选择。既然是MySQL程序帮我们自动选择的那么会不会有问题的呢?答案是会的,MySQL的优化器也有bug,有时候选择的索引并不是最优的。 案例1 假如
阅读全文
摘要:唯一索引和普通索引 查询数据过程的区别 SQL 普通索引 查询k索引树这个数据,当查到(3,300)的时候,还会继续查找下一个记录,如果下一个记录k不是3了就结束了 唯一索引 区别就在于查到(3,300)就直接结束,因为是唯一索引,它知道肯定是唯一的 结论 如果记录是唯一的,那么普通索引和唯一索引的
阅读全文
摘要:MySQL锁 三类锁 全局锁 表级锁 行锁 全局锁 全局锁就是对整个数据库加锁 Flush tables with lock(FTWRL)全局读锁 使用场景,给全库做逻辑备份 如果你在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆; 如果你在从库上备份,那么备份期间从库不能执行主库同步
阅读全文
摘要:索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样 InnoDB的索引模型 N叉树 以InnoDB的一个整数字段索引为例子,这个N差不多是1200。如果这棵树高4的化,就可以存储1200的3次方的值17亿了。考虑到根节点总是在内存中的,那么查一个数据最多只需要访问3次磁盘,而且其中第二
阅读全文
摘要:Mysql事务 避免事务,会占用内存 事务是啥? 简而言之:事务 就是保护多条执行的sql语句,要么全部成功,要么全部失败 比如:转账就是一个事务:从一个用户将资金转出,再将资金转入到另一个用户,这两个操作看做一体 事务是在哪个层实现的? 事务是引擎层实现的,mysql是多引擎的系统,不是所有引擎都
阅读全文
摘要:InnoDB引擎的redo log日志 解决什么问题? 我们每次更新数据如果都要直接写到硬盘存储的话,如果更新数据频繁的话,整个过程的Io成本和查找成本都会很高(比方说每次启动磁盘,平均的寻找数据时间将会很长) 怎么解决? 引入了redo log,redo就相当于一个缓存,它的关键点就是先写日志,在
阅读全文
摘要:MySQL分层 MySQL分层 主要分为:连接层,服务层,引擎层,存储层 客户端执行一条select命令的流程如下 连接器 功能: 负责跟客户端建立连接、获取权限、维持和管理连接 细节: 1.当用户登录成功后,用户就会拿到权限信息,即使管理员更改了你的权限,但是在本次连接中你的权限依然不变 2.连接
阅读全文
摘要:python操作mysql 安装 python操作mysql数据库,主要就是通过pymysql模块 操作流程 1)建立数据库连接对象 conn 2)通过 conn 创建操作sql的 游标对象 3)编写sql交给 cursor 执行 4)如果是查询,通过 cursor对象 获取结果 5)操作完毕,端口
阅读全文
摘要:什么是视图? 比方说有一张基本表,用户1来查看数据可以查看到字段1和字段2,用户2来查看可以看到字段3和字段4,那么这两个用户对同一张表就有不同的视图 首先从两个角度来看,一个是系统角度,一个是用户角度 系统角度 视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数
阅读全文
摘要:mysql多表关系 多表关系是关系型数据库特有的 三种关系 一对一关系 一对多关系 多对多关系 总结 一对一 例子:用户和用户信息 外键设置在用户上,外键字段唯一非空 添加 无级联:先增加被关联表记录(用户信息表),再增加关联表记录(用户表) 级联:相同 删除 无级联:先删除关联表记录,再删除被关联
阅读全文
摘要:Mysql查询 数据多次过滤 条件:from、where、group by、having、distinct、order by、limit = 层层筛选后的结果 注:一条查询语句,可以拥有多种筛选条件,条件的顺序必须按照上方顺序进行逐步筛选,distinct稍有特殊(书写位置),条件的种类可以不全 可
阅读全文
摘要:整型 数据长度 mysql的整型数据类型都是固定长度的 实验 浮点型 数据长度 设一个字段定义为float(6,3),小数部分必须为3位,不够0来凑,整数部分最大为3位 如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。 如果插入数11.123456,
阅读全文
摘要:desc只能查看表结构 查看zx1表结构 desc zx1; show可以用来查看创建语句和查看数据库和表 查看zx1表创建语句 show create table zx1; mysql show create table zx1; + + + | Table | Create Table | +
阅读全文
摘要:DCL管理用户 用户权限表 放在Mysql的user表中 默认用户登录会给与用户同名的一个数据库的所有权限(比方说新建一个用户zx,然后你数据库有一个zx数据库,当登录zx用户,就会有zx数据库的权限) 用户信息查看(修改需要重启服务) 创建用户权限管理(修改需要重启服务) 权限查看分解 GRANT
阅读全文
摘要:MySQL基础 数据库的历史(DataBase,DB) 人工管理阶段 文件系统 数据系统 MySQL是由MySQL AB公司开发,目前属于Oracle公司,是开源的关系型数据库。 Mysql存储引擎 为啥出现引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使
阅读全文

浙公网安备 33010602011771号