分类: MySQL

41 篇文章

BinLog订阅与解析
MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看) MySQL slave 将 master 的 binary log even…
MySQL Explain详解
针对SQL语句我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,从而分析你的查询语句或是表结构的性能瓶颈。 通过EXPLAIN,具体我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实…
MySQL如何优雅的储存IP地址
面试中关于MySQL的知识非常多,而如何储存IP地址又是经常被问到的一个。 避免“直接varchar类型不就得了”这样的零分回答。在这里手把手教你如何回答。 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,所以巧存IP地址可以一定程度获得很…
mysql查看被锁住的表
查询是否锁表show OPEN TABLES where In_use > 0; 查看所有进程show processlist; 杀掉指定mysql连接的进程号kill $pid 查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看…
MySQL锁机制
MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;…
left join,right join,inner join,full join之间的区别
sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果有所不同。 1.inner join(内连接),在两张表进行连接查询时,只保留两张表中完全匹配的结果…
表字段的选择,Sql 语句编写规范
对面坐着仁爱的面试官冷酷的问:小伙砸表字段,Sql语句有啥子需要注意哒创建表时表字段设计创建表时表字段设计 表字段避免 null 值出现,null 值很难查询优化且占用额外的索引空间,推荐默认数字 0 代替 null。尽量使用 INT 而非 BIGINT,如果非负则加上 UNSIGNED(这样数值容…
说一说 索引
对面坐着仁爱的面试官笑眯眯的问:小伙子索引是啥子 索引是什么帮助 MySQL 高效获取数据的数据结构,也可以称为快速查找排序的一种数据结构。Mysql 索引主要有两种结构:B+Tree 索引和 Hash 索引。我们平常所说的索引,如果没有特别指明,一般都是指 B 树结构组织的索引 (B+Tree 索…
表分区详解
分区工作原理 对用户而言,分区表是一个独立的逻辑表,但是底层 MYSQL 将其分成了多个物理子表,这对用户来说是透明的,每一个分区表都会使用一个独立的表文件。创建表时使用 partition by 子句定义每个分区存放的数据,执行查询时,优化器会根据分区定义过滤那些没有我们需要数据的分区,这样查询只…
MyISAM和InnoDB的区别
对面坐着仁爱的面试官问:MyISAM 和 InnoDB 是两种引擎比较流行的储存引擎,你说说他们的区别吧? 核心区别 MyISAM 是非事务安全型的,而 InnoDB 是事务安全型的。MyISAM 锁的粒度是表级,而 InnoDB 支持行级锁定。MyISAM 支持全文类型索引,而 InnoDB 不支…