
数据库
文章平均质量分 83
wen-pan
是程序猿一只呀
展开
-
利用存储过程造测试数据
开发过程中我们往往会遇到需要向数据库插入几千或几万条数据以测试某个功能,或者为了复现生产的某个bug而需要在测试环境造大量的数据的需求,此时便可以通过存储过程来直接向数据库某张表里生成指定条数的测试数据!!!②、生成指定长度的随机数字的函数按照入参和,生成该区间的随机数字2.创建存储过程该存储过程中会调用上面的函数生成指定长度的随机字符串该存储过程在调用时根据传入的入参可以控制生成的数据条数3. 查看存储过程4. 调用存储过程5.删除存储过程6.问题创建函数,假如报错:原创 2022-12-03 21:03:24 · 741 阅读 · 0 评论 -
MySQL字符集是什么
一、什么是字符集字符集指的是某个范围字符的编码规则比如utf8字符集对于所有中文汉字采用3个字节来表示(编码),所以我们称utf8为一种字符集。这里的范围就是指所有的中文汉字编码规则就是指 都采用3个字节来表示一个汉字比如ASCII字符集对于所有英文字母采用1个字节来表示(编码),所以我们称ASCII为一种字符集。这里的范围就是指所有的英文字母编码规则就是指 都采用1个字节来表示一个字母二、MySQL客户端和MySQL服务端字符集是如何交互的1、前置知识MySQL客户端原创 2021-12-20 17:03:54 · 7649 阅读 · 0 评论 -
innodb冷热LRU链表原理
一、冷热LRU链表引入我们知道MySQL是将数据存放在磁盘上的并且以页的形式来管理这些磁盘上的数据。磁盘的读写涉及到很多io操作,所以磁盘的访问是一个很慢的操作。为了提高数据的读写效率innodb会将一些数据缓存到内存中(buffer pool),在访问数据的时候首先查找内存,如果内存中有则直接访问,如果内存中没有,则按照一定的规则将数据加载到内存中。但是内存一般是比较昂贵的,一般不会将所有的数据都缓存到内存中(buffer pool),我们希望将一些热点数据缓存到内存中,将内存中那些不经常访问的数据逐原创 2021-12-20 17:02:32 · 1389 阅读 · 0 评论 -
innodb行格式
一、基础知识记录innodb以页作为内存和磁盘交互的基本单位,innodb的页大小一般为16kb,也就是说一般情况下一次最少从磁盘读取16kb的内容到内存,一次最少把16kb的内容刷新到磁盘中。一个页里有包含了多条数据,那么每条数据的格式是什么样的呢?innodb一共有四种行格式,分别是:compact、redundant、dynamic、compressed,本文主要记录compact行格式,其他的行格式大同小异。二、Compact行格式1、问题引入为了方便的说明行格式各个部分的作用,以一张表原创 2021-12-20 16:59:05 · 1514 阅读 · 0 评论 -
innodb的buffer pool原理
说明:下文基于innodb存储引擎介绍!!!一、什么是buffer pool我们知道对于MySQL数据库,是将数据以页的方式存放在磁盘上的。我们也知道对于磁盘的操作是非常慢的,如果我们需要查询某些数据时CPU都是从磁盘上去将这些数据读取出来然后返回给我们,那么这种效率肯定是低的让人奔溃的。那么MySQL采用了什么手段来提高数据读取效率呢?这就是buffer pool技术。顾名思义buffer pool就是内存缓冲池的意思,也就是使用内存来提高CPU和磁盘的交互效率。在MySQL启动时就会向操作系统申原创 2021-11-07 13:13:09 · 993 阅读 · 0 评论 -
自定义简单的MySQL连接池
在开发中我们使用的很多框架都会使用到连接池来缓存与相关服务的连接(因为频繁的创建和关闭连接是非常消耗性能的操作,所以我们需要提前创建好连接,并且把这些连接缓存起来,等到要使用连接的时候直接从连接缓存池中拿,使用完了以后再归还给连接池即可)。示例一(redisson连接池)通过redisson获取分布式锁的时候redisson框架会帮我们建立到Redis服务的连接我们都知道连接的创建和关闭是非常消耗性能 操作,如果等到要使用连接的时候才去创建连接,使用完了就关闭连接的话,那么这样无疑会给系统带来很.原创 2021-07-26 14:50:37 · 535 阅读 · 0 评论 -
MySQL主从复制搭建
1、环境说明1、两台服务器(centos8)2、MySQL版本号 8.0.212、安装两台MySQL注意主从MySQL版本要一致1、获取安装包并安装wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpmrpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install mysql-server -y2、初始化MySQL# 初始化原创 2021-01-04 10:19:24 · 259 阅读 · 0 评论 -
MySql查询、插入过程解析
1、MySQL查询SQL的执行流程?首先贴出执行流程图:示例SQL:select user_id,user_name,age from user where id = 1 and age = 23以上面的SQL为例讲解,当我们执行这条SQL语句的时候,执行流程如下:1、首先会使用用户名和密码和MySQL数据库建立连接2、查询缓存,如果缓存命中,则直接返回3、若缓存中不存在,则开始执行解析器a)、先进行词法解析: 词法分析就是把一个完整的 SQL 语句分割成一个个的字符串,比如上面的那条原创 2020-07-09 20:00:14 · 1608 阅读 · 0 评论 -
阿里云服务器(centos7)上配置实现MySQL可远程连接
前提:已经在服务器上安装完毕MySQL!当在阿里云的服务器上安装完毕MySQL数据库以后,默认是不能进行远程连接的,我们需要做如下配置:一、授权1、设置数据库用户在所有ip下以及在本地可访问,以下用root用户做演示①、在MySQL的命令行,依次输入如下命令grant all privileges on *.* to root@"%" identified by "你的密码";g...原创 2019-11-14 13:21:56 · 936 阅读 · 0 评论 -
centos7下安装mysql过程(超详细)
温馨提示:centos7默认不支持mysql(原因大家都懂),默认支持的是mariadb,mariadb是mysql一个开源分支。 所以安装mysql前一定要卸载mariadb,否则安装mysql会出现冲突 ①.执行如下命令来查找自己的虚拟机中是否有mariadb,如果有则进行卸载然后再安装mysql rpm -qa | grep mariadb 列出所有被安装的mariad...原创 2018-12-17 13:37:31 · 2397 阅读 · 0 评论 -
Redis常用命令总结(五大数据类型常用命令)
目录1.key关键字:2.String常用:3.list链表:4.set集合:数学集合类:5.hash常用:6.sorted set常用:常用命令大全官方地址:http://redisdoc.com/ 1.key关键字:Keys *:查看当前k-v键值对缓存中的所有key Exists key的名字,判断某个key是否存在 Move key db ...原创 2018-10-22 22:57:30 · 578 阅读 · 0 评论 -
Navicat基本快捷键
Navicat快捷键:1.ctrl+l : 删除一行2.ctrl+r : 运行查询窗口的sql语句3.F6 : 打开一个mysql命令行窗口4.ctrl+q : 打开查询窗口5.ctrl+/ : 注释sql语句6.ctrl+shift +/ : 解除注释7.ctrl+...原创 2018-09-27 14:25:34 · 1018 阅读 · 0 评论