Java HashMap类源码解析(续)-TreeNode
由于TreeNode本身是红黑树的实现,所以在分析TreeNode的之前我还是摸了一篇算法导论里红黑树的读书笔记:算法导论——红黑树,从伪代码行数也可以看出完整的红黑树的插入和删除操作代码是很长的,下面源码分析部分的行数就更多了,所以所谓手写红黑树画个图分析下逻辑还行,手写代码估计要写死(滑稽)
TreeNode从JDK8开始引入,作用是当HashMap解决冲突的链表长度超过了8时,生成一个红黑树来加速查找和插入,这里树结构存在并不影响本身依然存在线性链表结构,意思是Node.next这个属性依然有效,所以说树替换了线性链表依然还是链表法解决冲突,只不过链表的实现策略换了。
PostgreSQL 百亿地理位置数据 近邻查询性能
本文主要要展示的是PostgreSQL在位置信息近邻(KNN)查询方面的性能。
测试类型point,索引类型GiST。
(PostGIS同样支持KNN查询,性能和本文的测试差不多)
测试数据量大于100亿。
阿里云赵建伟:深度定制的高性能阿里云MySQL
本文根据阿里云资深数据库工程师赵建伟在“云栖大会上海峰会”专场《“互联网+”架构及实践专场-企业级信息系统云化演进之路》中的演讲整理。赵建伟在本演讲中主要为大家分享了阿里云的数据库服务和MySQL分支的深度定制情况。
MySQL执行计划解析
前言
在实际数据库项目开发中,由于我们不知道实际查询时数据库里发生了什么,也不知道数据库是如何扫描表、如何使用索引的,因此,我们能感知到的就只有SQL语句的执行时间。尤其在数据规模比较大的场景下,如何写查询、优化查询、如何使用索引就显得很重要了。
虚拟机字节码执行引擎
一、概述
物理机的执行引擎:直接建立在处理器、硬件、指令集和操作系统层面
虚拟机的执行引擎:由自己实现,可以自行制定指令集与执行引擎的结构体系,并且能够执行不被硬件直接支持的指令集格式。
java虚拟机的执行引擎:输入字节码文件,处理过程是字节码解析的等效过程,输出是执行结果。