一段MySQL,大概是这样 set @bl='value'; #定义变量 子查询1 子查询2 子查询3的where条件都用到了 select ... from( #子查询1(用到@bl) union #子查询2(用到@bl) union #子查询3(用到@bl) ) left join(子查询4) ...
分类:
数据库 时间:
2020-07-10 11:49:25
阅读次数:
79
今天我们看看,大牛是怎么思考设计MySQL优化方案的,在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程。很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Or ...
分类:
数据库 时间:
2020-07-08 15:41:24
阅读次数:
69
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的 ...
分类:
数据库 时间:
2020-07-05 19:02:10
阅读次数:
61
阿里规范中有一条 varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度 大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效 率。 解释 如果 字段类型为 text,可以把这个地段独立出一张表,用主键来对应,避免影响其它字段索 引效 ...
分类:
数据库 时间:
2020-07-04 15:13:56
阅读次数:
72
索引部分 1:联合索引如果能覆盖索引 会省去回表操作 效率大大提高 所以select的字段 尽量只查询联合索引里面的字段 2:只为搜索,排序,分组的字段建立索引 3:列基数过小的 就不需要索引了 效率不高 比如sex性别这种 4:索引列的字段尽量要小 比如tinyint char(8) 这样 索引占 ...
分类:
数据库 时间:
2020-06-29 18:37:31
阅读次数:
78
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的 ...
分类:
数据库 时间:
2020-06-28 18:11:57
阅读次数:
51
一. 应用层面的优化 ###使用连接池 频繁的创建连接,关闭连接是比较浪费资源的,我们可以创建数据库连接池,提高访问性能 ###减少对mysql的访问 ####2.1 避免对数据的重复访问 比如,获取书籍的id和name,查询如下: select id,name from book; 之后,在业务中 ...
分类:
数据库 时间:
2020-06-28 16:46:42
阅读次数:
68
SQL变慢的原因 优化 最简单的优化就是建立索引 https://www.runoob.com/mysql/mysql-index.html 建表时添加索引 建表同时建立单索引 CREATE TABLE t_user1(id INT , userName VARCHAR(20), PASSWORD ...
分类:
数据库 时间:
2020-06-26 20:31:51
阅读次数:
71
explain简介 explain专门用来做SQL语句的调优的,在select语句前面加一个explain可以把SELECT的执行过程都列出来,包括哪些用了索引,哪些没用索引,哪些查询是全表查询,哪些是索引查询等 . 使用效果如下图 : 概要描述 列名 说明 id 执行编号,标识select所属的行 ...
分类:
数据库 时间:
2020-06-21 00:52:12
阅读次数:
76
1. MySQL缓存 为了提高查询速度,我们可以通过不同的方式去缓存我们的结果从而提高响应效率。当我们的数据库打开了Query Cache(简称QC)功能后,数据库在执行SELECT语句时,会将其结果放到QC中,当下一次处理同样的SELECT请求时,数据库就会从QC取得结果,而不需要去数据表中查询。 ...
分类:
数据库 时间:
2020-06-17 20:19:29
阅读次数:
93