mysql

--PostgreSQL 怎么正确的开始POSTGRESQL 调优的活动 1

不打扰是莪最后的温柔 提交于 2021-02-15 02:50:58
文字内容来自于 postgresqlopen 2019 Mistaken And Ignored Parameters While Optimizing A PostgreSQL Database 的部分内容,分2期来完成. 下为译文 如果要优化POSTGRESQL主要从两个部分入手,系统层面和数据库层面 1 OS metrics 将数据与日志的目录分离,是否都放在一个物理磁盘中 CPU 是否有瓶颈 cache drops and swapping (LINUX 系统) 2 Database 连接池和连接数量 常用的查询数据在CACHE 中的稳定性 全表扫描和索引扫描 表膨胀 大表分区的问题 在不同表空间移动表的问题 但今天讨论的都不是这些,今天讨论的是错误的配置参数的问题 1 shared_buffer what does this parameter mean? 1️⃣、 多少物理内存应该分配给shared buffers 2️⃣、 被请求的页面和被修改的页面 3️⃣、根据LRU 策略多少数据应该从这个位置flush 怎么设置正确share_buffers 就变成一个重要的问题 , 大致上我们听到的都是设置为总内存的25%给share_buffers,但事实上是这样的吗? 前几年的会上有人提出8G就够了的理论, 那给了90%的内存不是应该获得更好的性能?

Phoenix查询hbase

扶醉桌前 提交于 2021-02-15 00:52:55
https://www.cnblogs.com/linbingdong/p/5832112.html 这个很全看这个 HBase,一个NoSQL数据库,可存储大量非关系型数据。 HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作。HBase虽然是一个数据库,但是它的查询语句,很不太好用。要是能像使用Mysql等关系型数据库一样用sql语句操作HBase,那就很Perfect了。 现有工具有很多Hive,Tez,Impala,Shark / Spark,Phoenix等。今天主要记录Phoenix。 phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,帮助开发者,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。 phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。 其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中

Postfix 邮件服务器

旧街凉风 提交于 2021-02-14 22:52:33
postfix 邮件服务 也是基于sendmail (需要关闭或卸载sendmail) postfix 是一个电子邮件服务器,它为了改良sendmail邮件服务器而产生的,并且它的配置文件比sendmail简单得多,配置相当容易。 postfix 作为发送邮件服务器 1、安装 yum install postfix   postfix 检测版本; postconf -d | grep mail_version postconf 还有其他命令可以了解一下。 2、创建邮件专用账户 ( 为下面配置需要使用 ); groupadd -g 5000 wmail useradd -g wmail -u 5000 -s /sbin/nologin wmail /etc/passwd 查看: 3、创建 postfix 库 新安装mysql默认没有root密码 直接登录; 为 postfix 创建 email 库,设置任意远程账户或者限制为本机localhost访问; 便于实验使用 库名账户密码都为 postfix mysql -u root - p mysql > create database postfix default character set utf8 collate utf8_bin; Query OK, 1 row affected ( 0.00 sec) mysql >

原创|高逼格企业级MySQL数据库备份方案,原来是这样....

谁说胖子不能爱 提交于 2021-02-14 22:00:22
很多人,这里说的是运维工程师们,一提到写某某方案,很是头疼。不是上某度一统搜索,就是同样一句话在N个群全部群发一遍:“有没有某某方案,可以共享一下的吗??求助,各位大佬们”,估计十有八九,全部石沉大海,杳无音讯。 其实,到底是真的很难,还是说你没有完全掌握整个备份思路的整理?一个方案的好坏,在于对于外行人来说,能不能一眼就能看懂其中要表达的意思,而且不需要很多的思考就可以。 一份好的备份方案无非包括以下几点: 为什么需要备份? 备份的方式有哪些? 某几种备份方式的区别在哪? 备份实战操作概述 恢复实战操作概述 其它备注信息 那么,此文将从以上几个角度,结合一些实际的实战经验,分步阐述一个完整的备份方案到底是怎么样构成的。需要学习更多Mysql数据库相关的知识,可以在公众号:民工哥技术之路的后台回复「MySQL」即可获取一份最全的MySQL数据库学习指南。 为什么需要数据库备份? 很多人,一看这标题,肯定张口就会答,这不是废话么。不备份故障了怎么办?跑路吗?数据被沙雕开发(不许喷)误删了怎么办?背锅吗? 当然,大家都知道备份的重要性与必要性。 1、保证数据安全与完整 企业的数据安全应该来说是企业的命脉,一旦丢失或造成损坏,轻则损失客户与金钱,重则倒闭(已经有前例在)。 备份的目的:为了保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时

MySQL事务

我的未来我决定 提交于 2021-02-14 21:41:54
1. 为什么要有事务 事务广泛的运用于订单系统、银行系统等多种场景 例如: A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事: 检查A的账户余额>500元; A 账户中扣除500元; B 账户中增加500元; 正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。 那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有收到本该属于他的500。 以上的案例中,隐藏着一个前提条件:A扣钱和B加钱,要么同时成功,要么同时失败。事务的需求就在于此 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。 例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性 事务四大特性(简称ACID) 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 以下内容出自《高性能MySQL》第三版,了解事务的ACID及四种隔离级有助于我们更好的理解事务运作。 下面举一个银行应用是解释事务必要性的一个经典例子。假如一个银行的数据库有两张表:支票表(checking)和储蓄表(savings)

linux离线安装mysql5.7

ぃ、小莉子 提交于 2021-02-14 21:40:50
下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 上传到 /home 目录下 解压安装包 tar -xf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C /home/mysql/ 查询并卸载系统自带的Mariadb rpm -qa | grep mariadb rpm -e --nodeps 文件名 查询并卸载系统老旧版本的Mysql rpm -qa | grep mysql rpm -e --nodeps 文件名 安装libaio环境(已经存在不需要) yum install libaio 执行Rpm包安装(按顺序) rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql

mysql触发器

 ̄綄美尐妖づ 提交于 2021-02-14 21:39:47
1. 触发器的使用 create table customerHistory like customer; alter table customerHistory add updated DATETIME; desc customerHistory; 创建一个名为trg_customer_history的触发器,在删除customer表中的数据时触发 create trigger trg_customer_history after delete on customer for each row begin insert into customerHistory (mid,nam,birth,sex,updated) values(old.mid,old.nam,old.birth,old.sex,NOW()); end select * from customer; INSERT into customer values('A0001','小王','1990-1-2',0); delete from customer where customer.mid = 'A0001'; select * from customerHistory; 查询创建的触发器 show triggers; 可以使用的关键词与事件的关系 inster NEW update OLD 和 NEW

[开源] .Net ORM FreeSql 1.10.0 稳步向前

爷,独闯天下 提交于 2021-02-14 18:59:35
写在 开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白)。今天带点干货和湿货给大家,先说下湿货。 认识我的人,知道 CSRedisCore 是我写的另外一个开源组件,这个项目是 2016 年从 ctstone/csredis 项目 clone 到自己工作的项目中,修改源码经过一年多生产考验,于 2017 年发布开源 https://github.com/2881099/csredis ctstone/csredis 项目于 2014 年停止了更新,到我手里完善的功能如下: 连接池 哨兵高可用 集群 redis 2.8 以上的版本命令补充,包括 Geo、Stream 通讯协议 bug 修复 暂时想到的只有这些,之后可能再补充。FreeSql 文章标题为什么要来说 csredis? 这两年的时间里 95% 精力都用在了 FreeSql 上面, 5400+ 单元测试、支持十几种数据库适配,渣男辜负了 csredis 这个项目。最近一个多月开源圈子的奇葩事接二连三,居然有人跑去 ctstone/csredis 原作者的 issues 告我的状,这个告状的人还是 NOPI 原作者,因为当初他自己不维护 NPOI .NET Core 版本了,社区有好人把 .NET Core 版本测试做好了开源(dotnetcore/NPOI)

SpringBoot 2.4 集成 Mybatis 链接数据库

余生长醉 提交于 2021-02-14 17:55:33
此文章假定您对Spring Boot和REST API比较了解。它将帮助您将MyBatis集成到Spring-Boot项目中,并开发一些与MySQL数据库进行交互的示例。在本教程的最后,您将拥有创建与关系数据库的基本交互(包括事务和池大小限制)以及与 MySQL 数据库的交互进行单元测试所需的全部功能。 对于本教程,我们将先创建一个Spring Boot 的基本实例 快速创建实例 前往 https://start.spring.io/ 如下所示 点击 GENERATE 生产一个zip解压导入IDEA工具即可 当然我们还需要创建 MySQL 数据库用来运行到你的 MacOS/Linux/win 等系统 windows 安装解压版 mysql-5.7.28-winx64 Linux 安装 Mysql5.7.20 版本 跨平台一键启动常用MySQL/Redis/Rabbit等环境 初始化我们的数据库 resources/init.sql 脚本将为您初始化数据库结构与数据: CREATE DATABASE IF NOT EXISTS `spring_boot` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `spring_boot`; DROP TABLE IF EXISTS `mybatis_test`; CREATE

mybatis获取自增主键

点点圈 提交于 2021-02-14 17:43:56
一、使用JDBC的方式返回主键自增的值 <insert id="insertSysUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="id" > insert into sys_user(user_name,password,user_info,head_img,create_time) values( #{userName},#{password},#{userInfo},#{headImg},#{createTime}); </insert> <!--这里仅做主键的演示功能,没有做非空判断--> useGeneratedKeys :默认值为 false 如果设置为 true, MyBatis 使用 JDBgetGeneratedKeys 方法来取出由数据库内部生成的主键; keyProperty: MyBatis 通过 getGeneratedKeys 获取键值后将要赋值的属性; 二、使用SelectKey返回主键的值 使用JDBC返回主键的方法只适用于支持主键自增的数据库。有些数据库(如 Oracle )不提供主键自增的功能,而是使用序列得到 个值,然后将这个值赋给 id ,再将数据插入数据库对于这种情况,可以采用另外 种方式:使用< selectKey>标签来获取主键的值