MySQL中utf8与utf8mb4的区别
MySQL中utf8与utf8mb4的区别
utf8mb4是MySQL在5.3.3后增加的编码,其中mb4的意思是: most byte 4,专门兼容四字节的Unicode
原来的MySQL支持的utf8编码最大字符长度为3字节,若遇到4字节的宽字符就会插入异常
3字节的utf8最大能编码的Unicode字符为Oxffff,即Unicode中基本多文种平面(BMP),即任何不在基本多文种平面的Unicode字符都无法使用MySQL的utf8字符集进行存储,包括Emoji表情和很多不常用的汉字
当使用utf8字符集时,需要保留长度就是utf8最长字符乘以字符串长度,例CHAR(100),MySQL会保留300字节长度
utf8升级utf8mb4步骤
首先将数据库默认字符集有utf8改为utf8mb4,对应的表默认字符集也要改为utf8mb4,已经存储的字段默认字符集也要进行相应调整;
123456-- 修改数据库ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;- ...
MySQL(二)-运维操作(二)
参考文献
命令行接口
mysql --column-type-info 显示结果集元数据
123456789101112131415161718192021-- 字段名Field 11: `produced_time`-- 目录名称Catalog: `def`-- 数据库名称Database: `test`-- 数据表名称, 当使用select field_name from table_name as alias_name语法时,这里显示的是表的别名Table: `orders`-- 原始表名,当前面行显示的别名,知道这个就非常有用了Org_table: `orders`-- 前面的行显示字段类型Type: DATETIME-- 排序规则Collation: binary (63)-- 表定义中定义的字段长度Length: 26-- 返回结果集字段长度的最大值Max_length: 0-- 如果是一个整数类型,则表示该字段中小数点后的位数Decimals: 6Flags: BINARY
MySQL沙箱
参考文献 ...
MySQL(二)-运维操作(一)
参考文献
你真的知道如何设置数据库连接池的大小吗
客户端操作
展示告警信息SHOW WARNINGS\G
连接相关
MySQL的最大连接数在5.7版本中默认是151, 最大可以达到16384(2142^{14}214).如何设置最大连接数在于你的服务器性能
查看 MYSQL连接数信息命令
1mysql> show variables like '%max_connections%';
查询当前数据库已建立连接数
1mysql> show status like 'Threads_connected';
配置
含义
Connections
尝试连接mysql的连接数,不管连接成功与否,该值都会+1
Threads_connected
已经建立的连接数,单节点下一般小于最大连接池最大连接数
max_connections
MySQL限制的最大的可连接的数量
wait_timeout
即MySQL长连接(非交互式)的最大生命时长,默认为8小时
interactive_timeout
长 ...
MySQL-用户权限管理
参考文献
你真的知道如何设置数据库连接池的大小吗
用户管理
用户信息表:mysql.user
新增用户
123456CREATE USER [IF NOT EXISTS]'username'@'host' IDENTIFIED BY 'password'; - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限. - 只能创建用户,不能赋予权限. - 用户名,注意引号:如 'user_name'@'192.168.1.1' - 密码也需引号,纯数字密码也要加引号 - 要在纯文本中指定密码,需忽略PASSWORD关键词.要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD
username:你将创建的用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空, ...
ElasticSearch(一)-理论
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
ElasticSerch使用场景
存储
ElasticSearch天然支持分布式,具备存储海量数据的能力,其搜索和数据分析的功能都建立在ElasticSearch存储的海量的数据之上;ElasticSearch很方便的作为海量数据的存储工具,特别是在数据量急剧增长的当下,ElasticSearch结合爬虫等数据收集工具可以发挥很大用处
搜索
ElasticSearch使用倒排索引,每个字段都被索引且可用于搜索,更是提供了丰富的搜索api,在海量数据下近实时实现近秒级的响应,基于Lucene的开源搜索引擎,为搜索引擎(全文检索,高亮,搜索推荐等)提供了检索的能力。 具体场景:
Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案;
GitHub(开源代码管理),搜索上千亿行代码;
电商网站,检索商品;
日志数据分析,logstash采集日志,Elastic ...
Java基础-内部类
参考文献
Java内部类详解
Java内部类以及使用场景
Nested Classes
8.1.3. Inner Classes and Enclosing Instances
Nested Classes
Terminology: Nested classes are divided into two categories: non-static and static. Non-static nested classes are called inner classes. Nested classes that are declared static are called static nested classes.
术语:嵌套类分为两类:非静态类和静态类.
非静态嵌套类称为内部类(inner class).
声明为static的嵌套类称为静态嵌套类(static Nested class).
123456789class OuterClass { ... class InnerClass { ... } ...
Apache工具包
参考文献
https://commons.apache.org/proper/
https://commons.apache.org/
Framework
用途
说明
Apache Tika
文件
文件类型分析Apache Tika 工具包可从一千多种不同的文件类型(例如 PPT、XLS 和 PDF)中检测并提取元数据和文本.所有这些文件类型都可以通过单个界面进行解析,这使得 Tika 对于搜索引擎索引、内容分析、翻译等非常有用.
Apache POI
Word/PPT/Execl
Apache HTTPClient
HTTP
Apache Shiro
安全
Apache PDFBox
PDF
Apache SkyWalking
监控
应用程序性能监控工具
Apache incubator-answer
系统
在线问答系统
完整的Common组件说明
Component
Description
Latest Maven Version
Release Version
Release Date
BCEL
Byte Co ...
Java基础-异常Exception
参考文献
受检查异常和不受检查异常
受检查的异常(checked): 这种在编译时被强制检查的异常称为"受检查的异常",即在方法的声明中声明的异常,对于这种异常,方法强制处理或者通过 throws 子句声明,其中一种情况是Exception的子类但不是 RuntimeException 的子类
对于checked异常的处理方式
当前方法明确知道如何处理异常,程序应该使用try...catch块来捕获异常,然后在对应的catch中修复该异常;
当前方法不知道如何修复异常时,应该定义该方法声明抛出异常;
不受检查的异常(unchecked): 在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常",这种异常是错误,会被自动捕获,非受检查是 RuntimeException 的子类,在编译阶段不受编译器的检查,
**Java中所有异常或者错误都继承Throwable,分为三类: **
Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等,程序无法处理;
Exception: ...
Hexo
参考文献
将自适应宽高大小的iframe视频嵌入博客网页
Hexo升级
https://leimingshan.com/posts/d9017f30/
Hexo主题
hexo-theme-butterfly
fluid
将自适应宽高大小的iframe视频嵌入博客网页
123456789101112131415161718192021222324252627282930<!-- 定义 iframe-container 的 CSS 样式 插入多个视频时也只需要定义一次 也可以放在引入的 CSS 文件中 iframe-container 可任意改名,前后一致即可 --> <style type='text/css'>.iframe-container { /* padding-top 为高/宽的值 16:9 为 9/16=56.25% */ padding-top: 56.25%; position: relative;}.iframe-container iframe { ...
Spring(六) 依赖注入
参考文献
Autowiring Collaborators
依赖注入(Dependency injection,DI)
表示Spring容器中创建对象是给其设置依赖对象的方式,通过某些注入方式可以让系统更灵活.
依赖注入模式和类型
手动模式
配置或编程的方式,提前安排注入规则
XML资源配置元信息;
Java注解配置元信息;
API配置元信息;
自动模式
实现方提供依赖自动关联的方式,按照内建的注入规则
Autowiring(自动绑定)
依赖注入的类型
依赖注入类型
配置原数据举例
setter方法
<proeprty name=“user” ref=“userBean”/>
构造器
<construcot-arg name=“user” ref=“userBean”/>
字段
@Autowiredprivate User user
方法
@Autowired public void user(User user){…}
接口回调
class MyBean implements BeanFactoryAwar ...