数据库
文章平均质量分 65
数据库常用架构及主从工作原理
七月的小尾巴
只要学不死,就往死里学!
展开
-
Windows安装mysql,亲测有效
windows 环境搭建 mysql转载 2022-10-10 12:28:14 · 453 阅读 · 0 评论 -
mysql存储过程实现同时多表写入,构造创建商品数据
前言通常在做性能测试的过程中,我们需要构造一下性能测试数据,有些可以通过调用API,直接构造数据,但是可能会存在一些场景,需要我们直接在数据库中插入数据,通常我们对于一些较为见到的场景,可以直接循环插入一张表中,但是如果我们遇到一些场景,比如创建商品,可能会设计到同时插入多张表,那么我们如何实现呢?数据库表设计下面我们以电商的项目为例,通过数据库实现插入商品数据,那么在创建商品数据之前,我们来了解一下表结构,我们可以看到三张表,分别是商品表、产品表和库存表,我们在创建商品的时候,需要分别在这三原创 2021-08-13 23:38:12 · 1812 阅读 · 0 评论 -
性能测试:数据库架构和SQL优化
前言有时候我们出去面试的时候,会被问到是否有做过架构方面的优化。如果没有准备突然被问到的话通常会有点懵。那么我们这里来整理一下系统架构优化相关的知识。其实一般架构优化主要就分为数据库架构,第二个就是应用程序架构。数据库架构优化读写分离,主从配置数据库架构优化,其实主要就是读写分离,主从配置。通常公司并发量比较大,或者用户比较大的情况下都会考虑读写分离。数据库支持主从同步,一台机器作为主,一台机器作为从。一旦做成主从就可以实现读写分离。一般读写分离通常是读的操作放在从机上,写的操作放在主机上,这原创 2021-08-09 23:44:35 · 312 阅读 · 0 评论 -
性能测试:数据库连接池问题分析
前言今天我们来压测一个支付的接口,10个并发,压测5分钟。下面我们可以看到tps大概在200多,响应时间在40ms左右。下面我们来看一下服务器的性能,应用服务器的cpu使用率大概在60%左右。再来看一下数据库服务器,数据库服务器的性能还算正常,cpu使用率大概在25%左右,而且我们支付的接口,还是在做一个写库的操作,下单的时候,会往订单表中插入数据。并且我们不断加压,新增并发,cpu仍然没有大概100%,tps也没有新增,响应时间整体越来越长。通常这种现象我们应该怎么排查呢?可以从下面两方面原创 2021-08-09 22:11:35 · 2014 阅读 · 3 评论 -
性能测试:数据库性能问题实战分析
接口压测分析现在我们来压测一个获取用户信息接口,这个接口会涉及到数据库的数据查询。我们的项目是部署正在应用服务器上面的,因此我们需要同时监控应用服务器和压力机。那么我们下面直接压测,来看一下它的性能情况。运行一段时间之后,我们可以看到这个接口的性能非常一般。tps只有40左右,并且响应时间高达200多。那么下面我们来看一下tomcat的这台服务器,cpu的使用率并不高,包括网络、磁盘IO等都没有什么问题。下面我们在来看一下数据库的服务器,可以看到cpu已经高达100%了。存在非常明显的性能问题。原创 2021-08-05 22:17:49 · 2152 阅读 · 1 评论 -
数据库慢查询监控配置
MySql慢查询方法介绍MySql 慢查询可以分析 MySql 语句查询性能问题的时候,可以再 MySql 记录中查询超过指标时间的语句,我们将超过指标时间的 SQL 语句称为 “慢查询”。MySql 自带的慢查询分析工具 mysqldumpslow 可以对慢查询日志进行分析;主要功能是统计sql的执行信息,其中包括:出现次数(count)执行最长时间(time)累计总耗费时间(Time)等待锁的时间(Lock)发送给客户端的行总数(Rows)扫描的行总数(Rows)开启mysql配置原创 2021-08-04 12:43:38 · 592 阅读 · 0 评论 -
Linux启动mysql服务,Table ‘mysql.plugin‘ doesn‘t exist问题解决方案
mysql server无法正常启动问题排查在安装mysql的时候,踩了一个坑,启动mysql服务的时候,提示 Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.一开始在网上查找这个报错资料的时候,说是3306端口被占用,可以输入 ps -aux|原创 2021-07-14 22:41:20 · 3140 阅读 · 4 评论 -
Linux集成环境部署 mysql + tomcat + redis
Linux集成环境部署 mysql + tomcat + redisMySQL安装和配置MySQL安装和配置MySQL是一个关系型数据库管理系统,由瑞典 Mysql AB公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。安装系统:5.7版本将群文件中的mysql-community-5.7- Linux -rpm.zip文件上传到Linux下的/usr/local/src目录下(其他目录也可以)使用 scp命令将MySQL安装包上传到Linux环境原创 2021-07-14 23:22:08 · 911 阅读 · 1 评论 -
Mysql中 begin..end使用遇到的坑
今天在用 Navicat 连接 mysql查询的时候,遇到了一个问题,如下代码块中所示:BEGINdeclare start_time datetime default '2021-05-06 00:00:00';declare end_time datetime default '2021-05-07 00:00:00';# 计算实体类店铺客单价 SELECT IFNULL(ROUND(( SELECT sum( spu_amount_all ) / 100 FROM test_ob原创 2021-05-06 17:51:55 · 7096 阅读 · 0 评论 -
MySQL中变量的定义和变量的赋值使用
说明:现在市面上定义变量的教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin…end块中,而普通的变量定义和使用都说的比较少,针对此类问题只能在官方文档中才能找到讲解。前言MySQL存储过程中,定义变量有两种方式:1、使用set或select直接赋值,变量名以@开头例如:set @var=1; 可以在一个会话的任何地方声明,作用域是整个会话,称为用户变量。2、以declare关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:declare var1 i转载 2021-05-06 12:06:53 · 894 阅读 · 0 评论 -
MySQL判断执行条件为NULL时,返回0,出错问题解决 Incorrect parameter count in the call to native function ‘ISNULL‘,
如图,今天再测试报表统计的时候,需要统计实际成交的金额,如果当天没有实际成交金额的话,统计的结果会为 NULL,我希望查询为NULL时,返回0,但是执行SQL的时候抛了(1582, "Incorrect parameter count in the call to native function 'ISNULL'") 这个异常排查原因是因为 mysql识别不了ISNULL导致的,改成IFNULL就可以了SELECT IFNULL( sum( spu_amount_all ), 0 ) FROM原创 2021-04-29 10:11:35 · 6804 阅读 · 0 评论 -
MySql实现两个查询结果相除
如图,最近在测试报表统计的时候,需要测试客单价,我需要先统计出商品的总额,然后再统计商品的订单总订单量,再将他们的数据相除客单价 = 订单总额 / 订单总量MYSQL计算公式例如:sql1=select sum(a) from xx; sql2=select sum(b) from xx;select (select sum(a) from xx)/(select sum(b) from xx)Select sum(a) / sum(b) From XX..原创 2021-04-29 11:07:26 · 12567 阅读 · 0 评论 -
Mysql判断计算结果,除以100
如图,公司在统计实际成交金额时,比如我支付1分钱,但是数据库里存的金额是100,所以在统计实际金额时,我需要将金额在除以100,如图如下sql所示,在你想要除以的字段旁边 除以 你想要的相除的数据即可SELECT IFNULL( sum( spu_amount_all ), 0 ) / 100 FROM test_obp_data.data_user_order_goods WHERE pay_time BETWEEN '2021-04-29 00:00:00' AND '2021-04原创 2021-04-29 10:45:39 · 4822 阅读 · 0 评论 -
常用的数据库架构及主从的工作原理
数据库的架构原则1. 高可用2. 高性能3. 可拓展4. 一致性数据库常用的架构目前市面上常用的架构主要有两种:1、一主多从2、双机热备下面我们来了解一下,什么是一主多从呢?一主多从 一主多从指的是,当我们客户端发起读写请求的时候,我们会从mysql服务进行读写数据。假设我们目前有三台mysql服务,其中一台作为主master服务,另外两台作为从salve。master拥有读写的权限,主要承担了写的工作,salve只有读的权限,主要承担了读的操作。当客服端发起请求时,他会将原创 2021-03-23 18:10:10 · 837 阅读 · 1 评论