出发点 比如,现在有这么一个问题,常见的一个面试题:有一张users表,数据量在五千万以上,存在一条查询语句: SELECT * FROM users WHERE name LIKE '%明%' AND sex='男' …
标签:mysql优化
MySql优化之key_buffer_size的设置
key_buffer_size key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。key_buffer_size只对MyISAM表起作用。但即使你不使用MyISAM表,内部的临…
mysql(InnoDB)事务隔离级别(REPEATABLE READ) 与 锁,MVCC
REPEATABLE READ (可重复读) 之前已经了解到, 该隔离级别可以解决不可重复读问题 (当然, 也能解决脏读问题), 那么如果单纯用锁来实现, 可能会是如下这样子: 既然REPEATABLE READ 隔离级…
SQL性能优化
索引 每当后端技术人员讲起SQL的调优时,第一个想到的方案往往是索引。先举个最简单的例子,这里在tb表中给字段tb_name加上普通的索引,由此根据该字段进行SELECT查询时就无需进行全表遍历,以加快查询速度 CREA…
mysql优化(一)
建表原则 定长与变长分离 如id int,占4个字节,char(4)占4个字符长度,也是定长,time即每个单元值占的字节是固定的。核心且常用字段宜建成定长放在一张表,而varchar,text,blob这种变长字段适合…
MySQL索引法则
索引的类型 – MySQL 索引类型: 见 :SOF primary / unique 唯一性索引,二者略有区别 key/index 最常见的索引,非唯一性 fulltext 全文索引 – MyI…
Mysql 使用 optimizer_trace 查看执行流程,分析、验证优化思路
该博客是我在看了《 MySQL实战45讲》之后的一次实践笔记。文章比较枯燥,如果你在这篇文章看到一些陌生的关键字,建议你也一定要去做实验,只有做实验且验证了各个数据的由来,才能真正弄懂。 背景 Mysql 版本 :5.7…
MYSQL 查找所有的父级或子级(多级)
语句的作用 如果用php程序查询的话,要用递归多次查询数据库,很慢,也增加了服务器的压力,后来发现用一句sql就能直接返回所有的父级或子级 用户表 t_id | parent_id 1 | 0 2 | 1 3 | 0 4…
Mysql 索引与优化
索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里的所有记录的引用指针更通俗的说,数据库索引就好比一本书的目录,能够加快数据库的查询速度 普通索引 这是这基本的索引,它没有任…
MySQL慢日志实践
慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志中.慢查询主要是为了…
MySQL 性能优化神器 Explain 使用分析
简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 SELECT 语句前加…
mysql索引建立规则
索引创建规则: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索…