MYSQL 九月 03, 2021

MySQL(七)分区表

文章字数 6.4k 阅读约需 6 mins.

对于用户而言,分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。分区表对于用户而言是一个完全封装底层实现的黑盒子,对用户而言是透明的,从文件系统中可以看到多个使用#分隔命名的表文件。
mysql在...

查看全文

MYSQL 九月 03, 2021

MySQL(七)分区表

文章字数 6.4k 阅读约需 6 mins.

对于用户而言,分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。分区表对于用户而言是一个完全封装底层实现的黑盒子,对用户而言是透明的,从文件系统中可以看到多个使用#分隔命名的表文件。
mysql在创建表时使用partition by子句定义每个分区存放的数据,在执行查询的时候,优化器会根据分区定义过滤那些没有我们需要数据的分区,这样查询就无须扫描所有分区。
分区的主要目的是将数据安好一个较粗的力度分在不同的表中,这样可以将相关的数据存放在一起。

  1. 表非常大以至于无法全部都放在内存中,或者只在表...
查看全文

文章 九月 02, 2021

Untitled

文章字数 1.4k 阅读约需 1 mins.

有时候需要索引很长的字符串,这会让索引变的大且慢,通常情况下可以使用某个列开始的部分字符串,这样大大的节约索引空间,从而提高索引效率,但这会降低索引的选择性,索引的选择性是指不重复的索引值和数据表记录总数的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性更高的索引可以让mysql在查找的时候过滤掉更多的行。

一般情况下某个列前缀的选择性也是足够高的,足以满足查询的性能,但是对应BLOB,TEXT,VARCHAR类型的列,必须要使用前缀索引,因为mysql不允许索引这些列的...

查看全文

MYSQL 八月 29, 2021

MySQL索引优化

文章字数 8.1k 阅读约需 7 mins.

B+Tree是在BTree的基础上做的一种优化

  • B+Tree每个节点可以包含更多的节点.

    作用:

    1. 降低树的高度.

    2. 将数据范围变为多个区间,区间越多,数据检索越快.

  • 非叶子节点存储key,叶子节点存储key和数据,

  • 叶子节点两两指针相互连接,顺序查找性能越高.

索引的优点

  • 大大减少服务器需要扫描的数据量
  • 帮助服务器避免排序和临时表
  • 将随机io变成顺序io

索引的用处

  • 快速查找匹配where子句的行
  • 从consideration中消除行,如果可以在多个索引之间进行选择,mysql...
查看全文

JAVA 八月 13, 2021

JDK动态代理生成的CLASS文件

文章字数 1.5k 阅读约需 1 mins.

在学习代理模式的时候,想看看动态代理生成的文件长啥样.只需要在程序启动时设置生成配置.

源码中可以看出文件输出是通过 saveGeneratedFiles 控制的.

而saveGeneratedFiles的生成是通过GetBooleanAction方法读取系统变量由来.

private static final boolean saveGeneratedFiles = (Boolean)AccessController.doPrivileged(new GetBooleanAction("...
查看全文

MYSQL 六月 15, 2021

mysql perform schema

文章字数 5.5k 阅读约需 5 mins.

MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况

特点: <https://dev.mysql.com/doc/refman/5.7/en/performance-schema.html>

  1. 提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关...

查看全文

MYSQL 六月 15, 2021

MySQL执行计划

文章字数 1.9k 阅读约需 2 mins.

​ 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。

​ 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。

官方地址: https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

1、执行计划中包含的信息

Column Meaning
id The SELECT identifier
select_type...
查看全文

MYSQL 六月 15, 2021

schema与数据类型优化

文章字数 7.3k 阅读约需 7 mins.

优化原则

  1. 更小的通常更好

    应该尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期更少,但是要确保没有低估需要存储的值的范围,如果无法确认哪个数据类型,就选择你认为不会超过范围的最小类型。

  2. 简单就好

    简单数据类型的操作通常需要更少的CPU周期,例如,

    1、整型比字符操作代价更低,因为字符集和校对规则是字符比较比整型比较更复杂,

    2、使用mysql自建类型而不是字符串来存储日期和时间 eg:创建两张相同的表,改变日期...

查看全文

MYSQL 六月 15, 2021

性能监控

文章字数 3.8k 阅读约需 3 mins.

**使用show profile查询剖析工具,可以指定具体的type **

官方文档:https://dev.mysql.com/doc/refman/5.7/en/show-profile.html

开启工具

此工具默认是禁用的,可以通过服务器变量在会话级别动态的修改

set profiling=1;

查询语句

当设置完成之后,在服务器上执行的所有语句,都会测量其耗费的时间和其他一些查询执行状态变更相关的数据。

select * from test;

使用工具分析查询语句各个阶段耗时

在mysql的...

查看全文

MYSQL 六月 15, 2021

MySQL的基本架构

文章字数 1.7k 阅读约需 2 mins.

负责跟客户端建立连接,获取权限,维持和管理连接

  • 用户名密码验证
  • 查询权限信息,分配对应的权限
  • show processlist 查看现在的连接
  • wait_time控制维持连接的时长,默认八小时

连接分两种:

  • 长连接:长连接是相对于短连接来说的。长连接指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

    客户端连接–创建socket认证连接–维护连接–数据传输–维护连接–数据传输…..-关闭连接

    在频繁的与数据库服务通信,并且又非高并发的情况下,...

查看全文

设计模式 六月 03, 2021

责任链模式

文章字数 9.7k 阅读约需 9 mins.

避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。

职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。

  • 抽象处理者(Handler):定义一个请求处理的方法,并维护一个下一个处理节点 Handler 对象的引用;

  • 具体处理者(ConcreteHandler):对请求进行处理,如果不感兴趣,则进行转发.

    // 通用...
查看全文
加载更多
0%