动态
开发
MySQL中Explain详解
Explain 简介MySQL 中有专门负责优化 SELECT 语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的 Query 提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得是 DBA 认为是最优的,这部分最耗费时间) 当客户端向 MySQL 请求一条 Query,命令解析器模块完成请求分类,区别出是 SELECT 并转发给 MySQL Query Optimizer 时,MySQL Query Optimizer 首先会对整条 Query 进行优化,处理掉一些常量表达式的预算,直接换算成常量值。并对 Query 中的查询条件进行简化和转换,如去掉一些 ...
开发
MySQL开启慢查询日志
慢查询日志介绍MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的 SQL,则会被记录到慢查询日志中。 long_query_time的默认值为 10,意思是运行 10 秒以上的语句。 由他来查看哪些 SQL 超出了我们的最大忍耐时间值 比如一条 sql 执行超过 5 秒钟,我们就算慢 SQL,希望能收集超过 5 秒的 sql,结合explain进行全面分析。 默认情况下,MySQL 数据库没有开启慢查询日志,需要我们手动来设置这个参数。 如果不是调优需要的话,一般不建议启动该参数, ...
开发
SQL语句之关联查询
关联查询的七种结果 测试数据1234567891011121314151617181920212223242526272829303132333435363738CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE ...
开发
了解MyCat
什么是 MyCat当对数据拆分后会产生诸多的问题,对于这些问题的解决,可以借助于数据库中间件来进行解决,现在时下比较流行的是使用 Mycat。 Mycat 是一款数据库中间件,对于应用程序来说是完全透明化的,不管底层的数据如何拆分,应用只需要连接 Mycat 即可完成对数据的操作。同时它还支持 MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库。但是 Mycat 不会进行数据存储,它只是用于数据的路由。 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代 Mysql 的加强版数据库 一个可以视为“Mysql”集群的企业级数 ...
经验总结
实现ios与Windows局域网互传文件
Windows 端操作新建需要共享的文件夹,然后右键该文件夹选择 属性 ,选择第二个 共享 标签,然后点击 高级共享 点击 高级共享 后,勾选 共享此文件夹 ,点击下面的 权限,然后全部勾选 允许 点击确定后回到刚才的 共享 标签,点击 共享,在下拉菜单里选择 Everyone,点击右边的 添加 按钮。 把 权限级别 改为 读取/写入,点击 共享,结束 ios 端打开文件 app,右上角选择连接服务器 输入地址,点击连接 格式为:smb://局域网内电脑 ip 地址 ip 地址可以通过 cmd 输入 ipconfig 查看 输入 Windows 系统登录的用户名和密码,点击下一 ...
开发
TCP协议中的三次握手和四次挥手
TCP 协议http协议属于 OSI 七层模型中的应用层协议。其主要是用于规范数据传输所遵循的格式标准。 最终的连接建立与数据传输还是基于 TCP/IP 协议来完成。 过程 建立 TCP 连接时会发生:三次握手(three-way handshake) Client > Server [SYN] 在么 Server > Client [SYN, ACK] 在 Client > Server [ACK] 知道了 关闭 TCP 连接时会发生:四次挥手(four-way handshake) Client > Server [FIN] 我要关闭连接了 Server & ...
开发
MySQL索引分类
单值索引即一个索引只包含单个列,一个表可以有多个单列索引,语法: 随表一起建索引: 1234567CREATE TABLE customer ( id INT(10) UNSIGNED AUTO_INCREMENT , customer_no VARCHAR(200), customer_name VARCHAR(200), PRIMARY KEY(id), KEY (customer_name)); 单独建单值索引 1CREATE INDEX idx_customer_name ON customer(customer_name); 删除索引 1DROP INDEX idx_ ...
开发
常见索引介绍
索引简介要做 sql 性能优化或想深入了解存储引擎,就需要了解索引。 MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL高效获取数据的数据结构。 索引的本质:索引是数据结构。可以简单理解为“排好序的快速查找数据结构”。 下图就是一种可能的索引方式示例: 左边的表格是数据表,一共有两列七条记录,表格最左边的是数据记录的物理地址 为了加快 Col2 的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快速的检索出符合条件的记录。 除了数据本身之外,数据库还维护着一个满 ...
开发
SQL执行顺序
SQL 执行顺序 所有的查询语句都是从 from 开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。第一步:首先对 from 子句中的前两个表执行一个笛卡尔乘积,此时生成虚拟表 vt1(选择相对小的表做基础表) 第二步:接下来便是应用 on 筛选器,on 中的逻辑表达式将应用到 vt1 中的各个行,筛选出满足 on 逻辑表达式的行,生成虚拟表 vt2 第三步:如果是 outer join 那么这一步就将添加外部行,left outer jion 就把左表在第二步中过滤的添加进来,如果是 right outer join 那么就将右表在第二步 ...
经验总结
CentOS7重启网络服务报错解决方法
起因今天在使用虚拟机配置 CentOS7 静态 ipv4 网络的时候,出现了 network 无法启动的问题 报错如下 Failed to start LSB: Bring up/down networking . 解决办法禁用 NetworkManager NetworkManager 是 2004 年 RedHat 启动的项目,皆在能够让 Linux 用户更轻松的处理现代网络需求,尤其是无线网络,能够自动发现网卡并配置 IP 地址。 12systemctl stop NetworkManagersystemctl disable NetworkManager 再次启动网络服务, ...