mysql中数据插入的四种模式

phpmianshi4年前 (2017-06-04)mysql27
简介数据插入的四种模式:Insert into,Replace Into,Insert ignore,on duplicate key update四种模式的区别1、insert into 最普遍的插...

mysql中排序和分页出现重复数据

phpmianshi4年前 (2017-06-03)mysql179
场景我们使用分页查询时候经常会遇到需要对某个或者某几个字段进行排序,在排序字段有相同值的情况下有可能最后的排序结果不是我们预期的样子,我们来看下一个例子。表里面的rec_time列的数据是有重复的,一...

mysql中超大表的删除方法

phpmianshi4年前 (2017-06-02)mysql235
在mysql中遇到一个大表,大概有17G左右,删除这张表。通常的删除操作可以通过delete、drop、truncate操作,但是有可能导致mysql hang住,必须使用些特殊的方法。1、建立硬链接...

mysql中count(x)到底慢不慢

phpmianshi4年前 (2017-05-28)mysql570
总结MyISAM 表不支持事务,但是count(*) 很快,因为他直接记录了一个总数MyISAM在统计表的总行数的时候会很快,但是有个大前提,不能加有任何WHERE条件。这是因为:MyISAM对于表的...

mysql中找出无用的索引或重复索引

phpmianshi4年前 (2017-05-23)mysql622
背景MySQL允许在相同列上创建重复的索引,但这样做对数据库却是有害而无利的,需要定期检查此类重复索引以改善数据库性能。可减少磁盘空间占用、减少磁盘IO、减少优化器优化查询时需要比较的索引个数、减少数...

mysql中performance_schema(三) 实践篇

phpmianshi4年前 (2017-05-21)mysql496
背景前一篇文章我们分析了performance_schema中每个表的用途,以及主要字段的含义,比较侧重于理论的介绍。这篇文章我主要从DBA的角度出发,详细介绍如何通过performance_sche...

mysql中performance_schema(二) 理论篇

phpmianshi4年前 (2017-05-20)mysql529
背景mysql performance_schema中总共包含52个表,主要分为几类:Setup表,Instance表,Wait Event表,Stage Event表Statement Ev...

mysql中performance_schema(一)配置篇

phpmianshi4年前 (2017-05-18)mysql733
背景    performance_schema最早在MYSQL 5.5中出现,而现在5.6,5.7中performance_schema又添加了更多的监控项,统计信息也...

mysql常见面试题第一讲

phpmianshi5年前 (2017-05-10)mysql385
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键...

mysql中行锁、两阶段锁协议、死锁以及死锁检测

phpmianshi5年前 (2017-05-09)mysql666
mysql中行锁、两阶段锁协议、死锁以及死锁检测
行锁MySQL的行锁都是在引擎层实现的,但是 MyISAM 不支持行锁,意味着并发控制只能使用表锁,同一张表任何时刻只能被一个更新在执行,影响到业务并发度。InnoDB 是支持行锁的,这也是 MyIS...

mysql中长事务详解

phpmianshi5年前 (2017-05-08)mysql316
什么是长事务运行时间比较长,长时间未提交的事务,也可以称之为大事务。这类事务往往会造成大量的阻塞和锁超时,容易造成主从延迟,要尽量避免使用长事务。下面我将演示下如何开启事务及模拟长事务:#假设我们有一...

mysql中CPU或内存利用率过高问题

phpmianshi5年前 (2017-05-06)mysql584
CPU 利用率过高原因在 MySQL 使用过程中,出现 CPU 利用率过高甚至超过100%时,与数据库存在低效 SQL 或大量行锁冲突有非常大的关系,一般都是由于大量低效的 SQL 导致,出现行锁冲突...

InnoDB体系结构及工作原理

phpmianshi5年前 (2017-04-27)mysql677
InnoDB体系结构及工作原理
概念InnoDB主要包括了内存池、后台线程以及存储文件。INNODB的三大特性:插入缓存,两次写,自适应hash内存池又是由多个内存块组成的,主要包括Buffer Pool、redo log缓冲等,解...

mysql中一条sql语句是如何执行的

phpmianshi5年前 (2017-04-26)mysql942
架构mysql是一种单进程多线程的架构,mysql server层的核心组件:连接器、查询缓存、分析器、优化器、执行器一条sql语句是如何执行的客户端发送一条查询给服务器服务器先检查查询缓存,如果命中...

mysql中AnalyzeTable优化

phpmianshi5年前 (2017-04-25)mysql523
Analyze TableMySQL的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列...

mysql中QueryCache优化

phpmianshi5年前 (2017-04-24)mysql552
原理 MySQL 的 Query Cache 实现原理实际上并不是特别的复杂,简单的来说就是将客户端请求的 Query 语句(当然仅限于 SELECT 类型的 Query)通过一定的 has...

mysql中distinct的实现与优化

phpmianshi5年前 (2017-04-23)mysql886
概念DISTINCT 实际上和 GROUP BY的操作非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没...

mysql中group by的实现与优化

phpmianshi5年前 (2017-04-22)mysql996
mysql中group by的实现与优化
概念    由于 GROUP BY 实际上也同样需要进行排序操作,而且与 ORDER BY 相比,GROUP BY 主要只是多了 排序之后的分组操作。当然,如果在分组的时...

mysql中order by的实现与优化

phpmianshi5年前 (2017-04-21)mysql367
mysql中order by的实现与优化
概念在 MySQL 中,ORDER BY 的实现有如下两种类型: ◆ 一种是通过有序索引而直接取得有序的数据,这样不用进行任何排序操作即可得到满足客户端 要求的有序数据返回给客户端; ◆ 另外一种则需...

mysql中Join的实现原理及优化思路

phpmianshi5年前 (2017-04-20)mysql577
mysql中Join的实现原理及优化思路
实现原理在MySQL中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join。顾名思义,...