MySQL
文章平均质量分 65
heqianqiann
每一个不曾起舞的日子都是对生命的辜负
展开
-
MySQL 存储过程与函数详解
存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复的编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输。一、存储过程1.1、基本语法CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [ch转载 2017-05-07 11:46:44 · 457 阅读 · 0 评论 -
MySQL 存储引擎InnoDB和MyISAM的区别
1.事务处理InnoDB支持事务 MyISAM不支持 MyISAM的执行速度更快 性能更好2.增删改查操作MyISAM:如果执行大量的SELECT,会使用全文索引,是更好的选择 InnoDB:如果你的数据执行大量的INSERT或者UPDATE操作,出于性能方面的考虑,应该使用InnoDB表3.锁机制MyISAM:表级锁 InnoDB:行级锁当数据库无法确定所找的行时,也会变成行锁如: upda原创 2017-09-20 10:43:26 · 532 阅读 · 0 评论 -
MySQL 主从复制原理
主从形式一主已从主主复制一主多从—扩展系统读性能多主一从 — 5.7开始支持联级复制用途和条件用途数据分布负载均衡备份操作 避免印象业务高可用性和容错性实时灾备 用于鼓掌切换读写分离 主数据库写数据 从数据库读数据 减少数据库压力必要条件主库开启binlog日志主从的server-id不同从库服务器能连通主句主从原理从库生成两个线程 一个IO线程 一个SQL线程IO转载 2017-09-03 16:01:00 · 722 阅读 · 0 评论 -
MySQL 覆盖索引
概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询注意 1、覆盖索引也并不适用于任意的索引类型,索引必须存储列的值 2、Hash 和full-text索引不存转载 2017-09-03 11:27:00 · 650 阅读 · 0 评论 -
MySQL 聚簇索引和非聚簇索引
聚簇索引就是对磁盘上的实际数据重新组织以按照特定的一个或者多个列的值排序的算法特点是存储数据的顺序和索引顺序一致 一般情况下主键会默认生成聚簇索引 且一张表有且只有一个聚簇索引聚簇索引和非聚簇索引的区别是: 聚簇索引的叶子节点就是数据节点 而非聚簇索引的叶子节点仍然是索引文件 只是这个索引文件中包含指向对应数据块的指针MySQL中不同的数据存储引擎对聚簇索引有不同的支持MyISAM使用的是非聚簇原创 2017-09-03 10:42:52 · 916 阅读 · 0 评论 -
MySQL 分区和分表
MySQL 分区水平分区垂直分区分区实验结论分区例子Range类型List类型Key类型子分区分区和分表的区别实现方式上数据处理上提高性能上MySQL 分区自5.1开始对分区(Partition)有支持水平分区根据列属性按行划分Range(范围): 允许DBA将数据划分成不同范围,例如按照时间范围进行划分Hash(哈希):允许通过对表的一个或多个列的Hash Key进行原创 2017-09-02 20:04:31 · 556 阅读 · 0 评论 -
MySQL 存储引擎归纳总结
MyISAM特点不支持事务加锁和并发 锁:表锁 并发:共享锁S锁和排他锁X锁有特殊的计数器记录当前的记录数数据文件和索引文件分开存储[堆表形式 所有记录无序存储]列索引 可以给BLOB和TEXT类型的列的前500个字符创建索引主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属性,其他普通索引没有唯一属性。B+树叶子节点存储的都是指向行记录的r原创 2017-09-02 17:13:14 · 357 阅读 · 0 评论 -
MySQL 加锁处理分析
背景MVCCSnapshot Read vs Current ReadCluster Index聚簇索引2PLTwo-Phase Locking 二阶段锁Isolation Level 隔离级别一条简单SQL的加锁实现分析组合一id主键RC组合二id唯一索引RC组合三id非唯一索引RC组合四id无索引RC组合五id主键RR组合六id唯一索引RR组合七id非唯一索引RR组合八转载 2017-09-02 15:41:07 · 407 阅读 · 0 评论 -
MySQL 对于千万级的大表要怎么优化?
很多人第一反应是各种切分;我给的顺序是:第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代码,但是sql转载 2017-09-01 11:21:13 · 364 阅读 · 0 评论 -
MySQL 触发器的使用
MySQL 触发器trigger触发器: 监视某种情况并且触发某种操作触发器创建语法的四要素:1. 监视地点 table2. 监视事件 insert/update/delete3. 触发时间 after/before4. 触发事件 insert/update/delete语法:create trigger triggerNameafter/before insert/update/del原创 2017-08-31 17:52:03 · 460 阅读 · 0 评论 -
MySQL 锁机制
锁是计算机协调多个进程或者线程并发访问某一资源的机制,在数据库中,除了传统的计算资源[CPU,RAM,I/O等]争用以外,数据也是许多用户共享的资源,如何保证数据的一致性和有效性也是一个值得考虑的问题。MySQL中的锁机制比较简单,主要是不同的存储引擎支持不同的锁机制MyISAM和MEMORY采用的是表级锁[table-level locking]BDB支持的是页面锁 也支持表级锁InnoDB原创 2017-08-31 15:47:52 · 461 阅读 · 0 评论 -
MySQL InnoDB引擎的索引和存储结构
在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。 而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。MySQL主要存储引擎的区别MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB,另外还有MERGE、MEMORY(HEAP)等。(1)主要的几个存储引擎转载 2017-09-03 20:34:43 · 1666 阅读 · 0 评论 -
MySQL 备份的三种方式
一. 备份的目的做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用二、备份需要考虑的问题可以容忍丢失多长时间的数据;恢复数据要在多长时间内完; 恢复的时候是否需要持续提供服务;恢复的对象,是整个库,多个表,还是单个库,单个表。三、备份的类型1.根据是否需要数据库离线冷备(cold backup):需要关mysql服务,读写原创 2017-06-08 09:10:07 · 1032 阅读 · 0 评论 -
MySQL mysqlbinlog查看binlog时报错unknown variable 'default-character-set=utf8'解决
1.问题描述C:\Users\heqianqian>mysqlbinlog mysql-bin.000003mysqlbinlog: unknown variable 'default-character-set=utf8'2.原因mysqlbinlog这个工具无法识别binlog中的配置中的default-character-set=utf8这个指令3.解决方法1.修改配置文件 —永久生效win原创 2017-06-07 17:17:25 · 10224 阅读 · 0 评论 -
MySQL 使用mysqldump命令出现错误Binlogging on server not active解决方法
问题描述 使用mysqldump对数据库备份时出现mysqldump: Error: Binlogging on server not active 错误错误如上图黄色框内异常解决方法:一. Linux环境下 1. vi /etc/my.cnf 2.去掉mysqld下的log_bin前面的注释 并且改成log_bin=mysql-bin之后重启服务即可二. Windows环境下找到安装mysq原创 2017-06-07 15:53:20 · 14599 阅读 · 0 评论 -
基于Docker的Mysql主从复制搭建
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建?资源有限虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐一台机器上可以运行多个Docker容器Docker容器之间相互独立,有独立ip,互不冲突Docker使用步骤简便,启动容器在秒级别利用Docker搭建主从服务器首先拉取docker镜像,我们这里使用5.7版...转载 2019-04-22 20:47:48 · 456 阅读 · 0 评论