堕落不振功业废,勤耕不辍日月新

 分类:MySQL

MySQL/MariaDB已被锁表运行中热复制为副本/innodb表错误Table xx doesn’t exist in engine处理

从数据表热复制说起。 在执行特别慢的语句时,mysql经常会锁表。这时如果想并行执行另一个语句,但表被锁而该语句只能排队。这种情况下,希望能将被锁的表复制个副本,就可以“假”并行执行;然而杀死前语句又太可惜。所以,运行中热复制的技巧(奇技淫巧)还是有用的。 对于MyISAM表,直...

MySQL Innodb性能监控

我们可以通过执行“show engine innodb status”命令来获取比较详细的系统当前Innodb性能状态。 1、BACKGROUND THREAD后台线程,可以看到活动线程,停止线程,空闲线程 2、SEMAPHORES这部分主要显示系统中当前的信号等待信息以及各种等...

MySQL Innodb数据及索引文件存储格式

Innodb存储引擎的数据(包括索引)存放在相同的文件中,这一点和MySQL默认存储引擎MyISAM的区别较大,后者分别存放于独立的文件。除此之外,Innodb的数据存放格式也比较独特,每个Innodb表都会将主键以聚簇索引的形式创建。所有的数据都是以主键来作为升序排列在物理磁盘...

MySQL数据切分

数据切分,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据的切分同时还可以提高系统的总体可用性,因为单台设备Crash之后,只有总体数据的某部分不可用,而不是所有的数据。 数据的切分(Sharding)...

MySQL Innodb存储引擎优化

Innodb存储引擎和MyISAM存储引擎最大区别主要有四点,第一点是缓存机制,第二点是事务支持,第三点是锁定实现,最后一点就是数据存储方式的差异。 一、Innodb缓存相关优化1、innodb_buffer_pool_size的合理设置Innodb存储引擎的缓存机制和MyISA...

MySQL的Query Cache优化

1、Query Cache实现原理MySQL的Query Cache实现原理实际上并不是特别的复杂,简单的来说就是将客户端请求的Query语句(当然仅限于SELECT类型的Query)通过一定的hash算法进行一个计算而得到一个hash值,存放在一个hash桶中。同时将该Quer...

MySQL的Schema设计

对于基于性能的数据库Schema设计,我们并不能完全以规范化范式理论来作为唯一的指导。在设计过程中,应该从实际需求出发,以性能提升为根本目标来展开设计工作,很多时候为了尽可能提高性能,我们必须做反范式设计。 一、高效的模型设计 1、适度冗余-让Query尽两减少Join数据库的规...

MySQL的DISTINCT优化

三、DISTINCT的实现与优化DISTINCT实际上和GROUP BY的操作非常相似,只不过是在GROUP BY之后的每组中只取出一条记录而已。所以,DISTINCT的实现和GROUP BY的实现也基本差不多,没有太大的区别。 同样可以通过松散索引扫描或者是紧凑索引扫描来实现,...

MySQL的GROUP BY优化

二、GROUP BY的实现与优化由于GROUP BY实际上也同样需要进行排序操作,而且与ORDER BY相比,GROUP BY主要只是多了排序之后的分组操作。当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算。所以,在GROUP BY的实现过程中,与O...

MySQL的ORDER BY优化

除了常规的Join语句之外,还有一类Query语句也是使用比较频繁的,那就是ORDER BY,GROUP BY以及DISTINCT这三类查询。考虑到这三类查询都涉及到数据的排序等操作,所以我将他们放在了一起,下面就针对这三类Query语句做基本的分析。 一、ORDER BY的实现...