- 博客(13)
- 资源 (6)
- 收藏
- 关注
转载 MySQL(八)|MySQL中In与Exists的区别(2)
关于In与Exists的比较,先说结论,归纳出IN 和Exists的适用场景:1)IN查询在内部表和外部表上都可以使用到索引。2)Exists查询仅在内部表上可以使用到索引。3)当子查询结果集很大,而外部表较小的时候,Exists的Block Nested Loop(Block 嵌套循环)的作用开始显现,并弥补外部表无法用到索引的缺陷,查询效率会优于IN。4)当子查询结果集较小,而外部...
2019-01-28 09:37:31 222
转载 MySQL(七)|MySQL中In与Exists的区别(1)
最近被一条SQL语句弄的有点兴奋,具体情况是这样的...我这边有两个表需要关联查询,表的情况如下:# 2759174行数据SELECT COUNT(*) FROM tb_data t1;# 7262行数据SELECT COUNT(*) FROM tb_task t2;# 执行时间为44.88sSELECT SQL_NO_CACHE t1.id FROM tb_data t1 ...
2019-01-28 09:36:54 379
转载 MySQL(七)|MySQL分库分表的那点事(小怪的Java群第一次话题讨论)
一、何谓分库分表?把原本存储于一个库的数据分块存储到多个库(主机)上,把原本存储于一个表的数据分块存储到多个表上。二、为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大。另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等...
2019-01-28 09:36:08 174
转载 MySQL(六)|《千万级大数据查询优化》第二篇:查询性能优化(2)
在上一篇文章MySQL(五)|《千万级大数据查询优化》第二篇:查询性能优化(1)中讲到一条SQL的查询执行路径如下图5-1所示:图5-1 步骤如下:客户端发送一条查询给服务器。 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进行下一阶段。 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划。 MySQL根据优化器生成的执行计划,调用存储...
2019-01-28 09:35:27 252
转载 MySQL(五)|《千万级大数据查询优化》第二篇:查询性能优化(1)
MySQL优化一般是需要索引优化、查询优化、库表结构优化三驾马车齐头并进。本章节开始讲查询优化。一、为什么查询速度会慢可以把查询当作一个任务,它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上是优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得更快。MySQL在执行查询的时候有哪些子任务,这个是有一定的方法进行剖析的,具体方法下回...
2019-01-28 09:34:55 243
转载 MySQL(四)|《千万级大数据查询优化》第一篇:创建高性能的索引(补充)
本文是MySQL(三)|《千万级大数据查询优化》第一篇:创建高性能的索引的一个补充。主要包括如下几点:关于sex列创建索引的处理 sex可以理解为那种选择性不高,但是可能很多查询都会用到的列。考虑到使用的频率,还是建议在创建不同组合索引的时候将它作为前缀。 但是根据经验法则(将选择性最高的列放到索引最前列)不是说不应该在选择性低的列上创建索引吗?那为什么这里要将sex列字段作为索引的前缀...
2019-01-28 09:34:09 228
转载 MySQL(三)|《千万级大数据查询优化》第一篇:创建高性能的索引
MySQL优化一般是需要索引优化、查询优化、库表结构优化三驾马车齐头并进。可以说,索引优化是对查询性能优化最有效的手段,索引能够轻易将查询性能提高几个数量级,“最优”的索引有时比一个“好的”索引性能要好几个数量级。创建一个真正“最优”的索引经常需要重写查询,所以索引优化和查询优化的关系很紧密。本文是《千万级大数据查询优化》系列第一篇:创建高性能的索引。我们先从一个面试题开始。面试题:...
2019-01-28 09:33:30 238
转载 MySQL(二)|深入理解MySQL的四种隔离级别及加锁实现原理
一、首先什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消事务开始时的所有操作。二、事务的ACID事务具有四个特征:原子性( Atomicity...
2019-01-28 09:32:31 761
转载 MySQL(一)|性能分析方法、SQL性能优化和MySQL内部配置优化
我曾经在公司处理过很多次Mysql性能上的问题,利用一些Linux常用的命令来查看Mysql对服务器的CUP和I/O使用情况,通过慢查询日志找出有待优化的sql,通过show processlist查看正在执行的sql的情况以及及时kill死锁的sql,通过EXPLAIN分析需要优化的sql语句。当然也对Mysql内部配置做了一些调整。最近也在看《高性能MySQL》这本Mysql的经典书籍,...
2019-01-28 09:31:43 291
原创 PHP对称加密(AES加密算法)与非对称加密(RSA加密算法)详细讲解及php的实现
目录对称加密 AES加密算法 非对称加密 RSA加密算法 为了保证网络传输数据的安全性,涉及敏感数据的传输,最好对数据预先加密,然后再在网络上进行传输,同时,还要保证数据在另一端是可解密的,并且还必须要通过钥匙(公钥或私钥)才能解密,没有钥匙(公钥或私钥)的人即使是拿到了加密过的数据也无法解密。对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密...
2019-01-15 10:35:53 2044
原创 PHP单元测试利器 PHPUNIT深入用法(三)第1/2页
在本文中,笔者将为大家介绍phpunit中的两个高级概念和用法,尽管它不一定在你的日常单元测试中都用到,但理解和学会它们的用法对学习phpunit还是十分重要的。 Phpunit中的Annotations 如果有其他编程语言经验的开发者,应该对Annotations(注解)不陌生,其实在phpunit中,一个简单的如下面的一段注释也可以认为是Annotations:<?php...
2019-01-11 17:16:02 235
原创 yii分页
方法中写法:<?phpuse yii\data\Pagination; // 分页显示 public function actionPage(){ $request=Yii::$app->request; $get=$request->post(); // var_dump($get); $use...
2019-01-11 17:15:43 168
原创 YII框架数据库的增删改查
简单的增删改查[php] view plain copy //添加 Yii::app()->db->createCommand()->insert('tbl_user', array( 'username' => 'zhangsan', 'email' =&...
2019-01-11 17:15:32 143
各种语言的学习资料(java,php,大数据,web,python......)
2019-07-29
Yii2中文手册(完整版).pdf
2017-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人