【数据库优化】MySQL索引的使用及优化

1. 索引的基本概念

索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构

  • 索引意义:
    1. 索引能极大的减少存储引擎需要扫描的数据量
    2. 索引可以把随机IO变成顺序IO
    3. 索引可以帮助我们在进行分组、排序等操作时,避免使用临时表

阅读更多

【数据库优化】MySQL性能优化基础

1. MySQL基础操作

1.1 MySQL备份与恢复

  1. 备份:在mysql的安装目录的bin目录下有mysqldump命令,可以完成对数据库的备份。
    • 语法:mysqldump -u 用户名 -p 数据库名> 磁盘SQL文件路径

阅读更多

【数据库优化】MySQL慢日志查询分析

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。

阅读更多

【Java知识梳理】深入JVM(三)-内存模型JMM 与 锁机制

Java内存模型(Java Memory Model)

Java Memory Model(JMM)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存中和从内存中读取变量这样的底层细节(可见性,有序性,原子性)。

  • 所有的变量都存储在主内存中
  • 每个线程都有自己的独立的工作内存,里面保存该线程使用到的变量的副本(来自主内存的拷贝)
  • JMM规定:
    • 线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接从主内存中读写。
    • 不同线程之间无法直接访问其他线程工作内存中的变量,线程间变量值的传递需要通过主内存来完成。

阅读更多

【Java知识梳理】深入JVM(二)-类文件结构 与 类加载机制

1. 类文件结构

Class文件是一组以 8 位字节为基础单位的二进制流,各个数据严格按照顺序紧凑的排列在 Class 文件中,中间无任何分隔符,这使得整个 Class 文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙存在。当遇到需要占用 8 位字节以上空间的数据项时,会按照高位在前的方式分割成若干个 8 位字节进行存储。
Java 虚拟机规范规定 Class 文件格式采用一种类似与 C 语言结构体的伪结构体来存储数据,这种伪结构体中只有两种数据类型:无符号数

阅读更多

【Java知识梳理】深入JVM(一)-运行时数据区 与 垃圾回收机制

Java虚拟机运行时数据区

  1. 程序计数器(Program Counter Register)
  2. 本地方法栈(Native Method Stack)
  3. Java虚拟机栈(VM Stack)
  4. Java堆(Heap)(线程共享)
  5. 方法区(Method Area)(线程共享)

阅读更多

【Java知识梳理】网络协议

1. 分层网络协议

  1. OSI七层网络协议:物理层,数据链路层,网络层,传输层(TCP/UDP),会话层,表示层,应用层
  2. TCP/IP协议分层(可以理解为OSI的一种实现):网络接口层,网络层,传输层(TCP/UDP),应用层

阅读更多

【安全认证】JSON Web Token 入门

JSON Web Token

JSON Web Token(缩写 JWT)基于JSON格式信息一种Token令牌,是目前最流行的跨域认证解决方案。

阅读更多

【安全认证】MD5算法加盐实现用户密码加密

1. MD5加密算法介绍

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法 第五版),经MD2、MD3和MD4发展而来的一种加密算法,是典型的消息摘要算法,属Hash算法一类。作用是让大容量信息在用数字签名软件签署私人密匙前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。通过MD5算法进行加密获得一个随机长度的信息并产生一个128位的信息摘要。如果将这个128位的二进制摘要信息换算成十六进制,可以得到一个32位的字符串,因此我们加密完成后的16进制的字符串长度为32位。

阅读更多

【数据库】嵌入式SQL语言

概述

  • 交互式SQL语言有很多优点:记录集合操作、非过程性操作、一条语句就可实现复杂查询的结果,
  • 然而,交互式SQL本身也有很多局限:

阅读更多