Fork me on GitHub
BangjinHu's Blog

让优秀成为习惯,让知识成为信仰


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 本站搜索

MySQL优化-trace分析

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 MySQL优化
字数统计: 79 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

mysql优化 - trace分析

通过trace文件能够进一步了解为什么优化器选择A执行计划而不选择B执行计划,帮助我们更好的理解优化器是如何选择执行计划的。

MySQ-分区

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 MySQL
字数统计: 1,462 | 阅读时长 ≈ 7

注意:所有文章除特别说明外,转载请注明出处.

[TOC]

概述

MySQL分区可以管理非常大的表,采用分而治之的逻辑,分区引入分区键概念,让数据根据规则分布在不同的分区中,让一个大对象变成一些小对象。

命令:show variables 查看当前MySQL是否支持分区

MySQL支持RANGE,LIST,HASH和KEY四种分区。其中,每个分区又都有一种特殊的类型。对于RANGE分区,有RANGE COLUMNS分区。对于LIST分区,有LIST COLUMNS分区。对于HASH分区,有LINEAR HASH分区。对于KEY分区,有LINEAR KEY分区。

阅读全文 »

MySQL优化-索引优化

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 MySQL优化
字数统计: 3,766 | 阅读时长 ≈ 14

注意:所有文章除特别说明外,转载请注明出处.

MySQL - 索引优化

[TOC]
通过索引可以帮助我们解决大多数的SQL性能问题。

MySQL索引类比是一本书前面的目录,能加快数据库的查询速度。

在没有索引的情况下,数据库会遍历全部数据后选择符合条件的。而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。

阅读全文 »

MySQ-存储引擎

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 MySQL
字数统计: 2,825 | 阅读时长 ≈ 10

注意:所有文章除特别说明外,转载请注明出处.

数据库与实例

数据库的概述:

​ 简单说就是存放数据的仓库,这个仓库按一定的数据结构(数据的组织形式、或数据之间的联系)来组织和存储的,数据库分为关系型数据库(Oracle,MySQL,SQLServer)和非关系型数据库(NOSQL,Memcaced,redis等)

实例

​ MySQL实例是由线程和内存组成,它是真正用于操作数据库文件的,一般情况下一个实例操作一个或多个数据库,在实例启动的时候MySQL会读取配置文件,MySQL如果找不到配置文件则会按照默认参数设置启动实例

锁

​ 只要由多个查询需要在同一时刻修改数据,都会产生并发控制问题,解决方法:并发控制

读写锁
阅读全文 »

MySQ

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 MySQL
字数统计: 11,560 | 阅读时长 ≈ 43

注意:所有文章除特别说明外,转载请注明出处.

MySQL高级

数据文件:

MyISAM:

  1. frm 文件:存放表结构

    1. myd 文件:存放表数据

      1. myi 文件:存放表索引

INNODB:

  1. frm 存放表结构
  2. ibd:
    阅读全文 »

Java NIO

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Java NIO
字数统计: 2,271 | 阅读时长 ≈ 9

注意:所有文章除特别说明外,转载请注明出处.

Java NIO

[TOC]

概念

java.io中最为核心的一个概念是流(stream),面向流编程。Java中,一个流要么是输入流,要么是输出流,不可能同时既是输入流同时又是输出流。

java.nio中拥有3个核心概念:Selector、Channel和Buffer。在java.nio中,我们是面向块(block)或缓冲区(buffer)编程。Buffer本身就是一块内存,底层实现上实际是一个数组。数据的读写都是通过Buffer来实现。

Java中提供7种原生数据类型都各自对应的Buffer类型。如IntBuffer、LongBuffer、ByteBuffer及CharBuffer等。但是没有BooleanBuffer类型。

阅读全文 »

Nginx-Apache

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Nginx-Apache
字数统计: 218 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

Nginx-Apache

[TOC]

Apache较Nginx的优点

1. rewrite功能比Nginx强大

2. 动态页面,Nginx处理动态请求是鸡肋,移动动态请求要Apache去做,Nginx只适合于静态和反向

3. 模块较于Nginx多
阅读全文 »

Netty

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Netty
字数统计: 5,570 | 阅读时长 ≈ 21

注意:所有文章除特别说明外,转载请注明出处.

Netty

[TOC]

概念

官方定义,它是一个异步的,基于时间Client/Server的网络框架,目标是提供一种简单、快速构建网络应用的方式,同时保证高吞吐量、低延时、高可靠性。

提示:Netty其实就是一个NIO框架,它适用于服务器通讯相关的多种应用场景,主要还是针对于TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。

NIO

NIO,非阻塞IO,在JAVA中NIO的核心就是Selector机制。简单而言,创建一个Socket Channel,并将其注册到一个Selector上(多路复用器),这个Selector将会“关注”Channel上发生的IO读写事件,并在事件发生(数据就绪)后执行相关的处理逻辑。对于阻塞IO,它需要在read()、write()操作上阻塞而直到数据操作完毕,但是NIO则不需要,只有当Selector检测到此Channel上有事件时才会触发调用read、write操作。

阅读全文 »

Python

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Python
字数统计: 230 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

Python

[TOC]

基础语法

Python 标识符

Python 中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

阅读全文 »

MyBatis 学习

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Mybatis
字数统计: 11,699 | 阅读时长 ≈ 47

注意:所有文章除特别说明外,转载请注明出处.

Mybatis - FD

前言

1.原生态JDBC程序存在问题

public static void main(String[] args) {
    //设置连接为null
    Connection connection = null;
    //设置预处理状态为null
    PreparedStatement preparedStatement = null;
    //设置结果集为null
    ResultSet resultSet = null;
    //检查异常并抛出异常
        try {
            //1、加载数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2、通过驱动管理类获取数据库链接
            connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");
            //3、定义sql语句 ?表示占位符
            String sql = "select * from user where username = ?";
            //4、获取预处理statement
            preparedStatement = connection.prepareStatement(sql);
            //5、设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
            preparedStatement.setString(1, "Aaron");
            //6、向数据库发出sql执行查询,查询出结果集
            resultSet =  preparedStatement.executeQuery();
            //7、遍历查询结果集
            while(resultSet.next()){
                System.out.println(resultSet.getString("id")+"  "+resultSet.getString("username"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            //8、释放资源
            if(resultSet!=null){
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(preparedStatement!=null){
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

总结:1.JDBC在使用过程中数据库连接会频繁开启和关闭,会严重影响到数据库的性能。2.在程序中存在硬编码,数据库部分以及SQL执行部分。

阅读全文 »
1…456…22
Bangjin-Hu

Bangjin-Hu

212 日志
73 分类
73 标签
RSS
GitHub email 微博 知乎 iProgramer_ing
0%
© 2018 — 2020 Bangjin-Hu | Site words total count: 486.7k