- 博客(9)
- 收藏
- 关注
转载 MYSQL的SQL性能优化总结
很多时候,我们的程序出现的“性能问题”,其实是我们自己写的那"坨"代码的问题,是自己Coding的问题,是Mysql的DML语句使用的问题。以下是我总结的关于MySQL DML语句的使用中需要注意的点。对于select *要时刻保持谨慎的态度绝大多数情况,是不需要select *的。一旦使用了这种语句,便会让优化器无法完成索引覆盖扫描这类优化,而且还会增加额外的I/O、内存和CPU的消耗...
2019-08-28 14:08:38 166
转载 数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示一、基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这...
2019-08-27 14:01:23 172
转载 分库分表需要考虑的问题及方案
分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个...
2019-08-27 13:58:13 117
转载 InnoDB MVCC实现原理及源码解析
1、原理介绍数据多版本(MVCC)是MySQL实现高性能的一个主要的一个主要方式,通过对普通的SELECT不加锁,直接利用MVCC读取指版本的值,避免了对数据重复加锁的过程。InnoDB支持MVCC多版本,其中RC和RR隔离级别是利用consistent read view方式支持的,即在某个时刻对事物系统打快照记下所有活跃读写事务ID,之后读操作根据事务ID与快照中的事务ID进行比较,判断可...
2019-08-12 17:28:52 130 1
原创 InnoDB MVCC
InnoDBis amulti-versioned storage engine: it keeps information about old versions of changed rows, to support transactional features such as concurrency androllback. This information is stored in t...
2019-08-12 17:14:31 123
转载 MySQL SQL优化之覆盖索引
前些天,有个同事跟我说:“我写了个SQL,SQL很简单,但是查询速度很慢,并且针对查询条件创建了索引,然而索引却不起作用,你帮我看看有没有办法优化?”。我对他提供的case进行了优化,并将优化过程整理了下来。我们先来看看优化前的表结构、数据量、SQL、执行计划、执行时间等。1. 表结构:CREATE TABLE `t_order` ( `id` bigint(20) u...
2019-08-12 10:38:52 122
原创 mysql explain结果中Type的含义
摘自:https://dev.mysql.com/doc/workbench/en/wb-performance-explain.htmlTable7.1Visual Explain Diagram InformationSystem Name Color Text on Visual Diagram Tooltip related information SYS...
2019-08-08 14:39:57 772 1
转载 MySQL联接查询算法(NLJ、BNL、BKA、HashJoin)
一、联接过程介绍为了后面一些测试案例,我们事先创建了两张表,表数据如下:CREATE TABLE t1 (m1 int, n1 char(1));CREATE TABLE t2 (m2 int, n2 char(1));INSERT INTO t1 VALUES(1, 'a'), (2, 'b'), (3, 'c');INSERT INTO t2 VALUES(2, 'b'), (...
2019-08-07 16:20:28 788 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人