Mysql principles
# MySQL 数据库开发的三十六条军规
# 一、核心军规 (5)
# 1.1 尽量不在数据库做运算
别让脚趾头想事情,那是脑瓜子的职责
让数据库多做她擅长的事:
尽量不在数据库做运算
复杂运算秱到程序端 CPU
尽可能简单应用 MySQL
举例: md5 () / Order by Rand ()
# 1.2 控制单表数据量
一年内的单表数据量预估
纯 INT 不超 1000W
含 CHAR 不超 500W
合理分表不超载
USERID
DATE
AREA
……
建议单库不超过 300-400 个表
# 1.3 保持表身段苗条
表字段数少而精
IO 高效
全表遍历
表修复快
提高幵发
alter table 快
单表多少字段合适?
单表 1G 体积 500W 行评估
顺序读 1G 文件需 N 秒
单行不超过 200Byte
单表不超过 50 个纯 INT 字段
单表不超过 20 个 CHAR (10) 字段
单表字段数上限控制在 20~50 个
# 1.4 平衡范式不冗余
严格遵循三大范式?
效率优先、提升性能
没有绝对的对不错
适当时牺牲 ...
My Mybatis notes
# MyBatis
# 1、简介
# 1.1 什么是 Mybatis
MyBatis 是一款优秀的持久层框架;
它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
# 1.2 持久化
数据持久化
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
内存:断电即失
数据库(Jdbc),io 文件持久化。
为什么要持久化?
有一些对象,不能让他丢掉
内存太贵
# 1.3 持久层
Dao 层、Service 层、Controller 层
完成持久化工作的代码块
层界限十分明显
# 1.4 为什么需要 MyBatis
帮助程序员将数据存入到数据库中
方便
传统的 JDBC 代码太复杂了,简化,框架,自动化
不用 MyBatis 也可以,技术没有高低之分
优点:
简单易学
灵活
sql 和代码的分离 ...
My Mysql Notes
# MySQL
[TOC]
# SQL 语句的分类
DQL (data query language): 查询语句,凡是 select 语句都是 DQL
DML(data manipulation language): insert delete udpate , 对表当中的数据进行增删改
DDL(data definition language): create drop alter ,对表结构的增删改
TCL(transaction control language): commit 提交事务, rollback 回滚事务
DCL(data control language): grant 授权, revoke 撤销权限等
# MySQL commands
show databases; /*show all the databases*/
use ...; /*choose the database*/
show tables; /*show tables in the database* ...
Maven + Netty + Rocketmq
# Maven
# 基本介绍
# Mvn 介绍
Maven:本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM:Project Object Model 项目对象模型。Maven 是用 Java 语言编写的,管理的东西以面向对象的形式进行设计,最终把一个项目看成一个对象,这个对象叫做 POM
pom.xml:Maven 需要一个 pom.xml 文件,Maven 通过加载这个配置文件可以知道项目的相关信息,这个文件代表就一个项目。如果做 8 个项目,对应的是 8 个 pom.xml 文件
依赖管理:Maven 对项目所有依赖资源的一种管理,它和项目之间是一种双向关系,即做项目时可以管理所需要的其他资源,当其他项目需要依赖我们项目时,Maven 也会把我们的项目当作一种资源去进行管理。
管理资源的存储位置:本地仓库,私服,中央仓库
[
](https://camo.githubusercontent.com/455093323e0f1edbbf1d611c475548afbcd1703096f598c3020ea80274ebf031/687474707 ...
Mysql + JDBC + Redis
# MySQL
# 简介
# 数据库
数据库:DataBase,简称 DB,存储和管理数据的仓库
数据库的优势:
可以持久化存储数据
方便存储和管理数据
使用了统一的方式操作数据库 SQL
数据库、数据表、数据的关系介绍:
数据库
用于存储和管理数据的仓库
一个库中可以包含多个数据表
数据表
数据库最重要的组成部分之一
由纵向的列和横向的行组成(类似 excel 表格)
可以指定列名、数据类型、约束等
一个表中可以存储多条数据
数据:想要永久化存储的数据
参考视频:https://www.bilibili.com/video/BV1zJ411M7TB
参考文章:https://time.geekbang.org/column/intro/139
参考书籍:https://book.douban.com/subject/35231266/
# MySQL
MySQL 数据库是一个最流行的关系型数据库管理系统之一
关系型数据库是将数据保存在不同的数据表中,而且表与表之间可以有关联关系,提高了灵活性。
缺点:数据存储在磁盘中,导致读写性能差,而且数据关系复杂,扩 ...
My Webpack5 Advanced notes
# 0、课程介绍
# 为什么学习 Webpack?
# 为什么是 Webpack 呢?
而全新版本 webpadk5 则是具备了比以往版本更强大的功能,甚至是诸多企业级前端工程化的技术选型的不二选择。
# 学习 Webpack5 的前提?
_ 前端基础知识:htm、css、es6 以及以上的版本
_ nodejs 和工程化
# 课程安排?
# 课程收获?
# 第一章:为什么需要 webpack
# 1.0 为什么需要 webpack
我们先回顾一下历史,在打包工具出现之前,我们是如何的在 web 网页中去使用 JavaScript 代码的?
我们先来看一个文档:
这是一个 html 文档,在这个文档中,我们共加载了 11 个 js 文件,这 11 个 js 文件,我们又可以分为两部分来看:
第一部分:是引入的外部或者叫第三方的库以及框架文件。这里我们引入了 jquery lodash bootstrap 等等。jquery 和 lodash 是第三方的 js 库,可以提高我们项目的开发效率。bootstrap 是第三方的 U 框架,可以协助我们做页面的布局,以及交互等等。 ...
My Webpack5 notes
# webpack5:高级篇
# 前言
在 基础篇 中,我们基于 webpack 构建了我们的基础工程化环境,将我们认为需要的功能配置了上去。 除开公共基础配置之外,我们意识到两点:
开发环境 (mode=development),追求强大的开发功能和效率,配置各种方便开发的功能;
生产环境 (mode=production),追求更小更轻量的 bundle (即打包产物);
接下来基于我们的开发需求,完善我们的工程化配置的同时,来介绍一些常用并强大的工具。
# 第一章:提高开发效率与完善团队开发规范
# 1.1 source-map
作为一个开发工程师 —— 无论是什么开发,要求开发环境最不可少的一点功能就是 ——debug 功能。 之前我们通过 webpack, 将我们的源码打包成了 bundle.js 。 试想:实际上客户端 (浏览器) 读取的是打包后的 bundle.js ,那么当浏览器执行代码报错的时候,报错的信息自然也是 bundle 的内容。 我们如何将报错信息 (bundle 错误的语句及其所在行列) 映射到源码上?
是的,souce-map。
webpack 已经 ...
Computer Network
# 计算机网络 - 概述
# 网络的网络
网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。
# ISP
互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。
目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。
# 主机之间的通信方式
客户 - 服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
对等(P2P):不区分客户和服务器。
# 电路交换与分组交换
# 1. 电路交换
电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
# 2. 分组交换
每个 ...
Javascript Interview Questions
# 不起眼的开始
招聘前端工程师,尤其是中高级前端工程师,扎实的 JS 基础绝对是必要条件,基础不扎实的工程师在面对前端开发中的各种问题时大概率会束手无策。在考察候选人 JS 基础的时候,我经常会提供下面这段代码,然后让候选人分析它实际运行的结果:
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(new Date, i);
}, 1000);
}
console.log(new Date, i);复制代码
这段代码很短,只有 7 行,我想,能读到这里的同学应该不需要我逐行解释这段代码在做什么吧。候选人面对这段代码时给出的结果也不尽相同,以下是典型的答案:
A. 20% 的人会快速扫描代码,然后给出结果: 0,1,2,3,4,5 ;
B. 30% 的人会拿着代码逐行看,然后给出结果: 5,0,1,2,3,4 ;
C. 50% 的人会拿着代码仔细琢磨,然后给出结果: 5,5,5,5,5,5 ;
只要你对 JS 中同 ...
JavaWeb 狂神说
# JavaWeb
Java Web
# 1、基本概念
# 1.1、前言
web 开发:
web,网页的意思
静态 web
html,css
提供给所有人看的数据始终不会发生变化!
动态 web
淘宝,几乎是所有的网站;
提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!
技术栈:Servlet/JSP,ASP,PHP
在 Java 中,动态 web 资源开发的技术统称为 JavaWeb;
# 1.2、web 应用程序
web 应用程序:可以提供浏览器访问的程序;
a.html、b.html… 多个 web 资源,这些 web 资源可以被外界访问,对外界提供服务;
你们能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上。
URL
这个统一的 web 资源会被放在同一个文件夹下,web 应用程序–>Tomcat:服务器
一个 web 应用由多部分组成 (静态 web,动态 web)
html,css,js
jsp,servlet
Java 程序
jar 包
配置文件 (Properties)
web ...