
MySQL
文章平均质量分 62
hzp666
这个作者很懒,什么都没留下…
展开
-
MySQL性能优化
在进行优化讲解之前,先请大家记住不要听信你看到的关于优化的“绝对真理”,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设。给大家提供一些优化方面的方向和思路,而具体业务场景的不同,使用的MySQL服务版本不同,都会使得优化方案的制定也不同。MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。转载 2023-11-22 15:04:47 · 247 阅读 · 0 评论 -
mysql新建用户
ps: GRANT SELECT 可以换成 insert 、update、或者all。create user '账号名'@'%' identified by '密码';GRANT SELECT ON 数据库名.表名 TO '账号名'@'%';ps: @'%' 中的 % 表示任意地点都可以登录。ps: @'%' 中的 % 表示任意地点都可以登录。分为两步,新建用户和赋权。原创 2023-10-27 16:03:55 · 359 阅读 · 0 评论 -
python读取Excel到mysql
data1 = pd.read_excel("C:/work/20230818***/数据导入.xlsx",dtype={0:"int", 2:"str", 3:"str"},parse_dates=[4,5])data1 = pd.read_excel("C:/work/20230818***/数据导入.xlsx",dtype={0:"int", 2:"str", 3:"str"},parse_dates=[4,5])设置特定类型,和指定日期类型。原创 2023-10-27 18:01:37 · 512 阅读 · 0 评论 -
SQL装13的一些写法
一些当你离职后,让老板狂拍大腿的代码。原创 2017-08-08 14:30:52 · 7121 阅读 · 2 评论 -
python把Excel写入pg
1.Excel列和数据库表字段相同data1 = pd.read_excel("C:/work/20220714***/**/词**导入pg.xlsx")# trim# dataframe类型转换为IO缓冲区中的str类型。原创 2023-06-06 13:29:32 · 968 阅读 · 0 评论 -
mysql设置update_time自动更新和create_time手动更新
ALTER TABLE t_emp_tag CHANGE create_time create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';设置create_time,创建时候默认当前时间。COMMENT '最后修改时间';原创 2023-06-05 18:20:52 · 3366 阅读 · 0 评论 -
MySQL数据恢复myflash 和 binlog2sql
MySQL闪回工具之:binlog2sql https://github.com/danfengcao/binlog2sqlMYSQL Binglog分析利器:binlog2sql使用详解 :http://blog.itpub.net/27067062/viewspace-2135398/binlog2sql参数# python binlog2sql/binlog2sql.py --help选项mysql连接配置-h host; -P port; -u user; -p password解析模式--s转载 2022-07-13 15:00:48 · 205 阅读 · 0 评论 -
MySQL数据备份与恢复(二) -- xtrabackup工具
上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为广泛的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容(本文篇幅较长,建议收藏后阅读)。01 xtrabackup 工具的安装 1.1 安装依赖包1.2 下载及安装去percona官网下载对应版本的安装包 https://www.percona.com/downloads , 因为每个版本对应的数据库版本不同,因此需要根据数据库的版本选择对应的xtrabackup的安装包.当前测试使用的数据库为MySQL5.7转载 2022-07-13 10:23:51 · 406 阅读 · 0 评论 -
MYSQL数据恢复之binlog2sql
关于数据恢复之前已分享过2篇,链接如下:MySQL数据备份及还原(一)MySQL数据备份及还原(二)今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。主要用途如下:该项目分享与git上,可以直接从git上获取,因此可以先安装git复制因binlog2sql依赖于python2.7或python3.4+版本,如果本机python版本较低,则无法使用。安转载 2022-07-13 10:14:07 · 2157 阅读 · 0 评论 -
Mysql 通过binlog日志恢复数据
Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据1,登录mysql查看binlog日志的状态,输入show variables like ‘%log_bin%’;查看binlog为off关闭状态2,开启mysql binlog日志,进入mysql配置文件(vi /etc/my.cnf) 在mysqld区域内添加如下内容,①server-id =转载 2022-07-08 14:59:41 · 19323 阅读 · 6 评论 -
MySQL binlog 日志解析
一 、binlog 简介binlog 是 MySQL Server 层记录的二进制日志文件,用于记录 MySQL 的数据更新或者潜在更新(比如 DELETE 语句执行删除而实际并没有符合条件的数据),select 或 show 等不会修改数据的操作则不会记录在 binlog 中。通常在 binlog_format = ROW 的环境下,我们可以通过 binlog 获取历史的 SQL 执行记录,前提是必须开启 binlog_rows_query_log_events 参数(默认关闭,建议开启),该参数可以通过转载 2022-07-08 11:18:48 · 7765 阅读 · 0 评论 -
MySQL系统表介绍
在上一期《复制信息记录表|全方位认识 mysql 系统库》中,我们详细介绍了mysql系统库中的复制信息记录表,本期我们将为大家带来系列第八篇《日志记录等混杂表|全方位认识 mysql 系统库》,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧!日志信息记录表01 1.1. 日志信息概述MySQL的日志系统包含:general query log、slow query log、error log(记录MySQL Server启动时、运行中、停止时的错误信息)、binary log(记录MyS转载 2022-06-21 11:01:00 · 1397 阅读 · 0 评论 -
MySQL慢查询记录
慢查询日志:MySQL慢查询日志记录下所有执行超过long_query_time时间的SQL语句,帮你找到执行慢的SQL,方便我们对这些SQL进行优化。慢查询日志的配置:默认情况下,mysql没有启用慢查询日志。[root@rh64 ~]# mysql -u root -pmysql> show variables like '%slow%';+------------------------------------+------------------------------+| Variable_nam转载 2022-06-21 10:43:06 · 364 阅读 · 0 评论 -
MySQL备份脚本
每天一次 0 2 * * * /root/mysqlbak.sh#!/bin/bash. /etc/profileuser='root'pass='123'date=`date +%Y-%d-%m`dir="/var/lib/mysql/backup"mysqldump -u$user -p$pass --all-databases | gzip > ${dir}/ddgz-all-${date}.sql.gzfind $dir -mtime +7 -name原创 2022-05-24 19:36:58 · 253 阅读 · 0 评论 -
shell命令更新mysql数据库
#!/bin/shmysql -h10.10.10.10-uroot -p123456 -e"use finereport;SET SQL_SAFE_UPDATES = 0;#for area getupdate APP_ALL_PLOT_AREA_FACTset UpdateTime = '2022-01-01 17:53:34'where UpdateTime = '2021-12-31 01:00:00' ;#for left coreupdate APP_ALL_HZ...原创 2022-01-10 18:59:29 · 1393 阅读 · 0 评论 -
mysql建立索引
1.添加PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )2.添加UNIQUE(唯一索引)mysql>ALTER TABLE `table_name` ADD UNIQUE (`column`)3.添加INDEX(普通索引)mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )4.添加FU...原创 2021-12-14 13:50:20 · 1127 阅读 · 0 评论 -
shell脚本执行SQL
shell脚本: 1 2 3 #!/bin/sh mysql -h10.253.26.10 -uroot -p密码 -e"source /opt/rh/test.sql" SQL文件:use middle_base;insert into mysqlt values('1','cs');commit;把SQL文件要上传到shell运行所对应的 服务器上,然后修改下 shell命令最后一个 文件路径..原创 2021-12-08 16:33:27 · 8874 阅读 · 4 评论 -
mysql连接flush-hosts问题处理
mysql连接flush-hosts问题处理上网查到解决方案【错误】Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’;【原因】同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;【解决方法】 1.首先使用 root 登录mysql -u root -p 2.提高.转载 2021-11-30 16:21:04 · 5565 阅读 · 0 评论 -
SQL中使用EXISTS 代替in的用法
我们在程序中一般在做SQL优化的时候讲究使用EXISTS带替代IN的做法,理由是EXISTS执行效率要比IN高。 之前我一直挺懵懂的一件事情是如何使用EXISTS来替换IN呢,二者表示的意义又是什么呢?今天就我个人理解记录一下 IN表示范围,指某一字段在某一范围之内,这个范围一般使用子查询来获取,由此可知IN子查询返回的结果应该就是这个范围集。 EXISTS表示存在,指至少存在一处,这个条件由EXISTS子查询来完成,但是在这里EXISTS子查询返回的结果却不再是一个结果集,而是一个布尔值(tr转载 2021-04-21 16:41:37 · 1051 阅读 · 0 评论 -
SQL查询每天的近3天的 平均销量
原表数据:要求计算出 每天的近3天的 销量平均值:select a.date, b.date,c.date,a.amount,b.amount,c.amount,(a.amount+b.amount+c.amount) /3from test aleft join test b on a.date = b.date-1left join test c on b.date = c.date-1效果:...原创 2021-04-21 14:10:01 · 2685 阅读 · 0 评论 -
SQL中的脏读、不可重复读、幻读
一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现×: 不会出现 脏读 不可重复读 幻读 Read uncommitted √ √ √ Read committed × √ √ Repeata...转载 2021-03-22 17:54:52 · 2959 阅读 · 2 评论 -
mysql查询表是否存在
1.查看mysql中有都有哪些数据库SHOW DATABASES2. 查看数据库中都有哪些数据表SELECT*FROM INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA = '{database_name}'# 或者是:SHOW TABLES# 或者是:SHOW TABLES like 'table_name' # 可用来判断表是否存在database_name 是指数据库的名字3.查看数据表中都有哪些字段...转载 2021-03-16 11:27:36 · 6171 阅读 · 0 评论 -
mysql-proxy
mysql-proxy简介mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql-proxy上。mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层: 进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。mysql-proxy允许用户指定L转载 2021-03-09 13:45:15 · 243 阅读 · 0 评论 -
MySQL中的group_concat函数的使用
MySQL中的group_concat函数的使用本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])基本查询mysql> select * from aa;+------+------+| id| na原创 2020-12-29 19:00:14 · 409 阅读 · 0 评论 -
mysql按照某个字段值内容排序
举个栗子:假如一个商品下,有多个货品,各个货品的状态值都不一样,那么当只想展示商品中的某一个货品时,希望用户端看到的优先级是在售的货品中的一个,根据mysql提供的方法:field(column,value1,value2,value3,……), 可满足当前需求.如:order by field(onshelf_status, 'ON_SHELF','OFF_SHELF','FORCE_OFF_SHELF','WAIT_AUDIT') asc limit 1;...转载 2020-12-29 10:38:47 · 2114 阅读 · 2 评论 -
mysql的行转列和列转行
一、行转列即将原本同一列下多行的不同内容作为多个字段,输出对应内容。建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL COMMENT '用户id', subject VARCHAR(20) COMMENT '科目', score DOU..转载 2020-11-05 18:48:44 · 155 阅读 · 0 评论 -
sql:函数:COALESCE()
COALESCE()函数主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果v..转载 2020-11-04 10:00:33 · 749 阅读 · 0 评论 -
SQL中分组的一些用法group_concat
分组查询后面一篇文章我们将介绍MySQL的聚合函数(https://blog.youkuaiyun.com/qq_41453285/article/details/88318318),group by通常与聚合函数放在一起使用 分组查询允许把数据分为多个逻辑组,然后对每个组进行聚合计算 使用group by之前,先说明一下重要的规则: 1.group by子句可以包含任意数目的列。这使得能对分组进行嵌套,为数据分组提供更细致的控制 2.如果在group by子句中嵌套了分组,数据将在最后规定的分组上进行汇转载 2020-11-04 09:54:02 · 3715 阅读 · 0 评论 -
Mysql中的WITH ROLLUP用法
Mysql中的WITH ROLLUP用法1.WITH ROLLUP:在group分组字段的基础上再进行统计数据。例子:首先在name字段上进行分组,然后在分组的基础上进行某些字段统计,表结构如下:CREATE TABLE `test` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(25) DEFAULT NULL COMMENT '标题', `uid` int(11) DEFAULT NULL COMME转载 2020-11-04 09:22:25 · 2029 阅读 · 0 评论 -
mysql存储过程实现动态sql
1.简介mysql存储过程可以使用预编译语句的方式来使用动态SQL,主要就是将SQL字符串预编译为statement,然后执行次语句: SET @sql = sql PREPARE stmt_name FROM @sql; EXECUTE stmt_name; {DEALLOCATE | DROP} PREPARE stmt_name; SET @sql:设置SQL字符串变量,一般为用户变量,即前面带有@的变量 PREPARE ...转载 2020-10-15 13:45:22 · 4918 阅读 · 0 评论 -
8 款免费的 MySQL 数据库建模工具
文章目录 MySQL Workbench SQL Power Architect PDMan RISE GenMyModel DB Designer dbdiagram.io Freedgo 总结 大家好,我是只谈技术不剪发的 Tony 老师。数据库建模和设计是软件开发过程中必不可少的步骤,一个良好的建模工具可以帮助我们简单快速地完成数据库设计,提高工作的效率。因此,今天给大家推荐几款免费的 MySQL 数据库建模工具,首先给出它们的功能比较:建模工具.转载 2020-09-25 18:07:29 · 16731 阅读 · 0 评论 -
ClickHouse替换MySQL作为数仓APP层
一、ClickHouse 是什么? 二、业务问题 三、ClickHouse实践 四、遇到的坑 五、总结 一、ClickHouse 是什么?ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)我们首先理清一些基础概念 OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统 OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果 ..转载 2020-09-22 12:02:35 · 2862 阅读 · 0 评论 -
MySQL中的锁
数据库中的锁锁分类按锁的粒度划分:表级锁、行级锁、页级锁按锁级别划分:共享锁、排它锁、意向锁按加锁方式划分:自动锁、显示锁按使用方式划分:乐观锁、悲观锁MySQL中的行级锁、表级锁和页级锁行级锁:行级锁分为共享锁和排他锁。行级锁是MySQL中锁定粒度最细的锁。InnoDB引擎支持行级锁和表级锁,只有在通过索引条件检索数据的时候,才使用行级锁,否就使用表级锁。行级锁开销大,加锁慢,锁定粒度最小,发生锁冲突的概率最低,并发度最高。表级锁:表级锁分为表共享锁和表独占锁。表级锁开销小转载 2020-08-13 18:51:46 · 179 阅读 · 0 评论 -
聚集索引与非聚集索引----二
聚集索引与非聚集索引的总结一.索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。SQL Sever索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。MySQL 索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引。二.聚集索引聚集(clustered)索引,也叫转载 2020-08-13 18:33:16 · 164 阅读 · 0 评论 -
mysql中函数和存储过程的区别
自定义函数和存储过程的区别:1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。2)对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RET.原创 2020-08-12 13:59:40 · 254 阅读 · 0 评论 -
确定性函数和非确定性函数
比如:ABS 返回给定数字表达式的绝对值,每次输入相同的参数值,所得的结果都是相同的,所以它是确定函数;而 GETDATA 返回当前系统时间,每次调用的结果都不同,所以它是非确定函数。如果 computed_column_expression 引用任何非确定性函数,则不能在计算列上创建索引。 如果视图引用任何非确定性函数,则不能在视图上创建聚集索引。用户定义函数的确定性用户定义函数是确定性函数还是非确定性函数取决于函数是如何编码的。在以下情况中用户定义函数是确定性函数:函数是架构绑定函数。转载 2020-08-12 13:56:00 · 1972 阅读 · 0 评论 -
MST
1.备份:热备:本地备份:https://blog.youkuaiyun.com/hzp666/article/details/81671246原创 2020-08-06 18:07:08 · 561 阅读 · 0 评论 -
row_number() over partition by 分组聚合
row_number() over partition by 分组聚合分组聚合,就是先分组再排序,可以的话顺手标个排名;如果不想分组也可以排名;如果不想分组同时再去重排名也可以ROW_NUMBER() OVER( [PARTITION BY column_1, column_2,…] [ORDER BY column_3,column_4,…])Oracle和SQL server的关键字是over partition bymysql的无关键字row_num转载 2020-07-30 17:45:37 · 1751 阅读 · 0 评论 -
mysql查看执行计划EXPLAIN
一、EXPLAIN语法语法:EXPLAIN SELECT1、EXPLAIN EXTENDED SELECT 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句2、EXPLAIN PARTITIONS SELECT 用于分区表的EXPLAIN3、在Navicat图形化界面中,点击“解释”出现执行计划的信息二、执行计划中的信息1、id:包含一组数字,表示查询中执行select子句或操作表的顺序。id相同,可以认为是一组,从上往下顺转载 2020-07-28 10:04:47 · 297 阅读 · 0 评论 -
mysql 为大表添加索引,导致超时的解决办法
mysql 为大表添加索引,导致超时的解决办法简单的创建索引语句 : create unique index inxName on table A('Col') 。如果表数据量不大,没有问题,但是数据超过千万,可能你等了半天,却告知你超时了。网上查到解决方案:1. 复制表A 的数据结构 , 不复制数据create table B like A;2. 表B加上你需要的索引3. 把原有数据导入新表4. 修改表A 的名称为A_old , 修改B表的 表名为A.我的问题出...转载 2020-07-28 10:03:51 · 1867 阅读 · 0 评论