摘要:
本文转载自数据库设计:表的设计命名的十个注意点 表名一般以【模块名称_具体表名】来实现,同一个模块的前缀是一样的。(Oracle大小写敏感,在SQL中可以不用“_”,因为可以用大小写一起的写法。这也是可以的)。 表名称不应该取得太长(一般不超过三个英文单词,不推荐使用中文拼音,总的长度不要超过30个 阅读全文
摘要:
本文转载自MySQL -- 内部临时表 UNION UNION语义:取两个子查询结果的并集,重复的行只保留一行 表初始化 CREATE TABLE t1(id INT PRIMARY KEY, a INT, b INT, INDEX(a)); DELIMITER ;; CREATE PROCEDUR 阅读全文
摘要:
本文转载自 "MySql查询性能优化" 避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。 例如在处理分页时,应该使用LIMIT限制MySql只返回一页的数据,而不是向应用程序返回全部数据后,再由应用程序过 阅读全文
摘要:
本文转载自 "MySQL优化总结" MySQL逻辑架构 说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT 、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而 阅读全文
摘要:
本文转载自 "Mysql的join算法" 导语 在Mysql中,使用 的算法思想去优化 ,`Nested Loop Join`翻译成中文则是“嵌套循环连接”。 举个例子: 称为外层表,也可称为驱动表。 称为内层表,也可称为被驱动表。 在Mysql的实现中, 有3种实现的算法: :`SNLJ`,简单嵌 阅读全文
摘要:
本文转载自 "MySQL 索引设计概要" 导语 在关系型数据库中设计索引其实并不是复杂的事情,很多开发者都觉得设计索引能够提升数据库的性能,相关的知识一定非常复杂。 然而这种想法是不正确的,索引其实并不是一个多么高深莫测的东西,只要我们掌握一定的方法,理解索引的实现就能在不需要 DBA 的情况下设计 阅读全文
摘要:
本文转载自 "MySQL性能优化最佳实践 08 SQL EXPLAIN解析" 什么是归并排序? 如果需要排序的数据超过了sort_buffer_size的大小,说明无法在内存中完成排序,就需要写到临时文件中。若排序中产生了临时文件,需要利用归并排序算法保证临时文件中的记录是有序的。归并排序算法是分批 阅读全文
摘要:
本文转载自 "数据库范式(1NF/2NF/3NF)" 概述 范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,是在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8 阅读全文
摘要:
本文转载自 "MySQL索引原理及慢查询优化" 背景 MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句 阅读全文
摘要:
本文转载自 "InnoDB 的记录结构和页结构" 概述 将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,中页的大小一般为 。也就是在一般情况下,一次最少从磁盘中读取 的内容到内存中,一次最少把内存中的 内容刷新到磁盘中。 MySQL 里共有四种行格式: 指定行格式的方法 COMPACT 阅读全文
摘要:
本文转载自 "最官方的 mysql explain type 字段解读" 读了很多别人的笔记都杂乱不堪,很少有实例,什么都不如原装的好,所以当你读到我的笔记的时候如果觉得说的不明白,最好参考官方的手册。 我把官方的手册简单翻译了下,好多地方也还是不懂,网友补充,配合了官方的实例代码 更多请更多的参考 阅读全文
摘要:
本文转载自 "MySQL 索引" 索引模型 哈希表 实现上类似于 ,哈希表适合只有 等值查询 的场景 " " 有序数组 有序数组只适用于 静态存储引擎 (针对不会再修改的数据) " " 查找 1. 等值查询:可以采用 二分法 ,时间复杂度为 2. 范围查询:查找 首先通过 二分法 找到第一个大于等于 阅读全文
摘要:
本文转载自 "InnoDB Next Key Lock" MVCC 1. InnoDB支持 ,与之 相对的是 2. MVCC中 分两类: (`不加锁 Current Read 加锁`) 3. MVCC的好处: , ,适用于常规的 项目( 应用) 隔离级别 InnoDB支持4种事务隔离级别( ) | 阅读全文
摘要:
本文转载自 "MySQL的InnoDB索引原理详解" 摘要 本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。 InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM, "文档" )。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyI 阅读全文
摘要:
本文转载自 "InnoDB 数据页结构" 数据页结构 " " File Header 参考链接: "Fil Header" 1. 总共 ,记录页的 | 名称 | 大小(Bytes) | 描述 | | : | : | : | | FIL_PAGE_SPACE | 4 | 该页的 值 | | FIL_P 阅读全文
摘要:
本文转载自 "InnoDB 行记录格式" 分类 " " Named File Format 1. InnoDB 的文件格式( )为 ,可以定义两种行记录格式,分别是 和`Redundant` 2. 为了解决不同版本下 ,在 可以定义两种新的行记录格式 和`Dynamic` 3. 变量为 和`inno 阅读全文
摘要:
本文转载自 "ANNOTATION PROCESSING 101" Introduction In this blog entry I would like to explain how to write an annotation processor. So here is my tutorial 阅读全文
摘要:
本文转载自 "深入理解Linux TCP backlog" 当应用程序调用 系统调用让一个 进入 状态时,需要指定一个参数: 。这个参数经常被描述为,新连接队列的长度限制。 tcp state diagram.png 由于 建立连接需要进行3次握手,一个新连接在到达 状态可以被 系统调用返回给应用程 阅读全文
摘要:
本文转载自 "DNS 原理入门" 导语 DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。 DNS 是什么? DNS (Domain Name System 阅读全文
摘要:
本文转载自 "spring扩展点整理" 背景 Spring的强大和灵活性不用再强调了。而灵活性就是通过一系列的扩展点来实现的,这些扩展点给应用程序提供了参与Spring容器创建的过程,好多定制化的东西都需要扩展点的支持。尤其在使用SpringBoot的过程中。 BeanFactoryPostProc 阅读全文