摘要: 类由静态到动态,会经历运行时数据区这一步: 静态编译:把Java代码编译成字节码文件Class文件,它以静态方式存在 类加载器:把Java字节码文件加载到内存中 【方法区】与【堆】是运行时数据区在所有线程间共享的,它们是存数据的地方 【虚拟机栈】,【本地方法栈】,【程序计数器】是运行时数据区线程私有 阅读全文
posted @ 2020-03-12 22:29 4ra1n 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 什么是类加载器: public class ClassInit { public static void main(String[] args) { ClassLoader c=ClassInit.class.getClassLoader(); } } 上面这个ClassLoader就是类加载器 打 阅读全文
posted @ 2020-03-12 19:11 4ra1n 阅读(342) 评论(0) 推荐(0) 编辑
摘要: Class文件结构解析: 网上看到几篇文章对Java的Class文件解析写的比较全面: https://www.jianshu.com/p/247e2475fc3a http://tech.dianwoda.com/2018/03/28/jvm-classjie-xi-wen-jian-ge-shi 阅读全文
posted @ 2020-03-12 12:41 4ra1n 阅读(350) 评论(0) 推荐(0) 编辑
摘要: DDL执行 线上服务器执行DDL,更新表结构,需要谨慎,结构更改会导致全表被独占锁定(新版本有改善) 避免这种情况,使用COPY策略,而不是直接执行ALTER TABLE语句 思路:创建一个新表,满足新要求,将旧表数据逐条导入新表,同时表上可以执行其他任务,导入的过程其他任务都记录在日志,导入完成后 阅读全文
posted @ 2020-03-11 18:27 4ra1n 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 分表 通常指:通过应用程序层,将数据划分到不同的表中进行存储 对比分区,分区是在服务器层完成的分区算法 分表会导致客户端明显的改变,在服务器端出现结构相同的多张表,甚至可以把多张表分到不同的服务器上 以账单表为例:数据库可能会有这样的情况 create table bill201710( id in 阅读全文
posted @ 2020-03-11 16:33 4ra1n 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 分区: 分区也是MySQL优化中的一个重要方式 将一个表中的数据和索引,分散到不同的文件中进行存储 通常情况下,一个表,对应一组数据和索引文件,一个表的数据和索引集中存储在这组文件中 当一个表出现了大量的记录时,可以将其分布到不同的数据和索引文件中进行存储 Innodb来说,一个表对应多个ibd文件 阅读全文
posted @ 2020-03-11 16:12 4ra1n 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 查询缓存: MySQL提供的数据缓存QueryCache,用于缓存SELECT查询的结果 默认不开启,需要在配置文件中开启缓存(my.ini/my.cnf) 在[mysqld]段中,修改query_cache_type完成配置: 0:关闭 1:开启,但是默认缓存,需要增加sql-no-cache提示 阅读全文
posted @ 2020-03-11 15:07 4ra1n 阅读(274) 评论(0) 推荐(0) 编辑
摘要: MySQL优化中,最重要的优化手段就是索引,也是最常用的优化手段 索引简介: 索引:关键字与数据位置之间的映射关系 关键字:从数据中提取,用于标识,检索数据的特定内容 目的:加快检索 索引检索为什么快: (1)关键字相对于数据本身,量较小 (2)关键字都是排序好的 MySQL中索引的类型: 普通索引 阅读全文
posted @ 2020-03-11 11:39 4ra1n 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 存储引擎: 早期的时候,存在如何选择MyISAM和Innodb? 现在,Innodb不断地发展完善,成为了主流的存储引擎。 因此5.5之后的mysql,无脑选择Innodb即可。 MYSQL中的数据,索引以及其他的对象,是如何存储的,是一套文件系统的实现。 MYSQL支持很多的存储引擎,使用 SHO 阅读全文
posted @ 2020-03-10 23:38 4ra1n 阅读(266) 评论(0) 推荐(0) 编辑
摘要: Web项目中,当Java或者Go等语言速度提升到瓶颈的时候,我们需要关心MySQL的优化 可以优化的方面有很多:设计表、负载均衡、读写分离、SQL语句优化等 (1)IP地址设计 例如我们需要存储IP地址:192.168.1.1 第一反应是选用VARCHAR(15);但是更好的方式是INT UNSIG 阅读全文
posted @ 2020-03-10 20:42 4ra1n 阅读(996) 评论(0) 推荐(0) 编辑