Mysql优化可从四个层面着手: 字段类型的选取,尽量考虑使用整型类定义字段,比如在符合范围值的情况下使用tinyint、smallint;甚至可将IP定位为整型(4个字节,32位,IP的每一段刚好可以用8位二进制表示); 如果字段类型为blob/text的列查询较少,而其它字段列有频繁查询,可将这 ...
分类:
数据库 时间:
2018-08-20 01:12:15
阅读次数:
222
一、基准测试简介 1、什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务) ...
分类:
数据库 时间:
2018-08-16 13:43:21
阅读次数:
170
今天查看MySQL慢查询日志,查看一个四表关联的SQL操作,耗时1006s。这次也是基于基于子查询的思路,对上表进行优化。使时间复杂度降到n^2级别。但优化之后时间反而是原来的三倍多。 原SQL语句: 耗时1s多, 优化后的语句: 查看其执行计划后可知: 修改后的执行计划: 由于索引的存在:原SQL ...
分类:
数据库 时间:
2018-08-16 01:10:18
阅读次数:
204
嵌套查询及其作用域: 近日整理数据库中的点单规则数据时,在写SQL语句时遇到了一个bug,解决办法以及原因整理出来。 事例SQL, (select city.cityName as '城市',cdr.role as '角色',cdr.buildType as '规则',city.companyNam ...
分类:
数据库 时间:
2018-08-16 00:49:34
阅读次数:
159
这一篇文章证实了以前对MySQL优化程序的工作原理。 MySQL就像一个人一样,总是聪明的去选择当前最快的方式去查询,而不是像Oracle数据那样死板地根据规格去查询。 查询的要求在于快。而对于数据库来说,最耗时的在磁盘IO,如何减少磁盘IO的次数,成为提高查询速度的最为关键的因素。于是在这种情况, ...
分类:
其他好文 时间:
2018-08-15 22:56:58
阅读次数:
302
看到很多PHP程序员职业规划的文章,都是直接上来就提Linux、PHP、MySQL、Nginx、Redis、Memcache、jQuery这些,然后就直接上手搭环境、做项目,中级就是学习各种PHP框架和类库,高级阶段就是MySQL优化、PHP内核与扩展、架构设计这些了。 这些文章都存在一个严重的缺陷 ...
分类:
Web程序 时间:
2018-08-10 14:36:09
阅读次数:
200
MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。 语法 MySQL 的EXPLAIN 语法可以运行在SELECT 语句或者特定表 ...
分类:
其他好文 时间:
2018-08-08 13:45:19
阅读次数:
180
MySQL 8.0新增特性 use_invisible_indexes:是否使用不可见索引,MySQL 8.0新增可以创建invisible索引,这一开关控制优化器是否使用invisible索引,on表示考虑使用。 MySQL 5.7新增 derived_merge:派生表合并,类似Oracle的视 ...
分类:
数据库 时间:
2018-08-08 11:08:33
阅读次数:
466
6. 合理使用EXISTS,NOT EXISTS子句。如下所示: 1.SELECT SUM(T1.C1) FROM T1 WHERE (SELECT COUNT(*)FROM T2 WHERE T2.C2=T1.C2>0) 2.SELECT SUM(T1.C1) FROM T1WHERE EXIST ...
分类:
数据库 时间:
2018-08-06 22:42:37
阅读次数:
216