![](https://img-blog.csdnimg.cn/20190920135352929.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 78
Ch3nnn
这个作者很懒,什么都没留下…
展开
-
MySQL 数据库中的数据类型
而 VARCHAR 类型的长度是可变的,其最大值可以取 0 ~ 65535 之间的任意值,VARCHAR 类型实际占用的空间为字符串的实际长度加一,这样可以有效节约系统的空间。例如,BIT(4) 就是指定数据类型为 BIT 类型,长度为 4,若存储的数据是 0 ~ 15,因为变成二进制后的 15 的值为 1111,则其长度为 4。参数和 ENUM 一致,SET 类型的值可以取列表中的一个或多个元素,取多个元素时,不同元素之间用逗号隔开,SET 类型的值最多只能是由 64 个元素构成的组合。转载 2023-11-22 11:50:33 · 124 阅读 · 0 评论 -
Golang-Ent ORM框架
面向对象编程和关系型数据库,都是目前最流行的技术,但是它们的模型是不一样的。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。简单说,ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。ORM 把数据库映射成对象。转载 2023-06-26 14:27:00 · 1615 阅读 · 0 评论 -
count(*) 和 count(1) 有什么区别?哪个性能最好?
当我们对一张数据表中的记录进行统计的时候,习惯都会使用 count 函数来统计,但是 count 函数传入的参数有很多种,比如 count(1)、count()、count(字段) 等。到底哪种效率是最好的呢?是不是 count() 效率最差?我曾经以为 count() 是效率最差的,因为认知上会读取所有表中的字段,所以凡事带有字符的就觉得会读取表中所有的字段,当时网上有很多博客也这么说。但是,当我深入 count 函数的原理后,被啪啪啪的打脸了!不多说, 发车!转载 2023-02-02 18:00:04 · 606 阅读 · 0 评论 -
Mac 安装psycopg2出错:Error:pg_config executable not found的解决
解决方法for Mac OSX(没有安装过Postgres.app)安装 postgresql:(在你已经安装Homebrew的前提下)brew install postgresql错误:pkg-config:无效预设`pour_bottle?`条件 #2965https://github.com/Homebrew/discussions/discussions/2965brew update# 如果这不起作用brew update-reset2. 找到相...原创 2022-03-11 11:28:21 · 2197 阅读 · 0 评论 -
MyBatis动态sql语句(OGNL语法)
if<select id="select" resultType="Blog"> SELECT * FROM BLOG WHERE state = 'ACTIVE' <if test="title != null"> AND title like #{title} </if> <if test="name != null"> AND name like #{title} </if></select&原创 2021-09-01 14:59:24 · 263 阅读 · 0 评论 -
MySQL 8.0窗口函数 ROW_NUMBER() OVER()函数的使用
语法格式:row_number() over(partition by 分组列 order by排序列 desc) row_number() over 具有分组排序的功能根据薪水进行排序:select id,name,age,salary,row_number()over(order by salary desc) rnfrom clm_salary_bak t根据id 进行分组,根据薪水进行排序:select id,name,age,sal...原创 2020-09-24 10:38:35 · 23707 阅读 · 9 评论 -
阿里开源Canal--简介
canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。背景早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支原创 2020-07-21 18:20:32 · 2723 阅读 · 0 评论 -
基于Docker实现MYSQL主从复制
前言MySQL的主从复制是实现应用的高性能,高可用的基础。对于数据库读操作较密集的应用,通过使数据库请求负载均衡分配到不同MySQL服务器,可有效减轻数据库压力。当遇到MySQL单点故障中,也能在短时间内实现故障切换。本文就MySQL的内建的复制功能进行阐述。版本MySQl: 5.7.17 CentOS: 7.4.1708 Docker: 1.13.1概述MySQL复制数据流程:主库在数据更新提交事务之前,将事件异步记录到binlog二进制日志文件中,日志记录完成后存储引擎提交本次原创 2020-07-14 10:18:33 · 399 阅读 · 0 评论 -
docker mysql主从同步
参考于:https://blog.csdn.net/tr1912/article/details/81302648本文基于docker 构建 主从及双机热备。主从复制的根本操作就是把从主服务器上所执行过的sql在从机上再执行一遍,只要两个机器的数据库初态(数据库结构,数据,配置)是一样的,那么我们开启主从复制之后就能保证他们一直都是一样的状态。这些都是mysql自己实现的,我们就配置一下就可以了。首先看下面一张图:从图中我们可以看出来了,主服务器需要做的事情非常简单的,就只是把执行的sq原创 2020-06-22 21:40:36 · 559 阅读 · 0 评论 -
DataX3.0离线同步工具介绍
DataX3.0离线同步工具介绍一. DataX3.0概览DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。(这是一个单机多任务的ETL工具)下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz设计理念为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成原创 2020-06-10 11:56:44 · 613 阅读 · 0 评论 -
mysql查询group_concat()数据不全导致数据被截断问题
查询语句如下:SELECT 发行人, GROUP_CONCAT( 股票代码, '##', 全称,'##', 简称) AS bond_info FROM 表名查询该语句发现数据居然缺失如下:140020##2014年记账式附息(二十期)国债##14附息国债20,G140020##2014年记账式附息(二十期)国债##14附息国债20, 省略部分数据......,101424##2014年记账式附息(二十四期)国债##国债1424,140024##查来查去终于发现了一个巨坑,那就是...原创 2020-05-14 18:54:33 · 1387 阅读 · 1 评论 -
操作数据库的命令行神器:mycli
mycliMyCLI是MySQL,MariaDB和Percona的命令行界面,具有自动完成功能和语法突出显示功能。GitHub:https://github.com/dbcli/mycli快速开始如果您已经知道如何安装python软件包,则只需执行以下操作:pip install mycli如果您使用的是macOS,则可以通过自制软件安装。brew ...原创 2020-04-07 13:40:14 · 226 阅读 · 0 评论 -
多线程通过SQLAlchemy获取数据报'Too many connections'错误
目录SQLAlchemy 中的 EngineEngine 初始化遇到坑:解决方式:sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1040, 'Too many connections')SQLAlchemy 中的 EngineEngine 翻译过来就是引擎的意思,汽车通过引擎来驱动...原创 2019-09-20 16:52:43 · 2232 阅读 · 0 评论 -
InternalError Incorrect string value: '\\xF0\\x9F\\x91\\x87' for column 插入❤表情符号错误
向数据text字段写入时报错 :sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x87</...' for column 'xmlContents' at row 8")一般来说Mysql(小于5.5.3)字...原创 2020-02-25 18:39:13 · 910 阅读 · 0 评论 -
SQL语句中----删除表数据drop、truncate和delete的用法
SQL语句中----删除表数据drop、truncate和delete的用法一、SQL中的语法1、drop table表名称eg: drop table dbo.Sys_Test2、truncate table表名称eg: truncate table dbo.Sys_Test...原创 2020-02-25 10:54:30 · 290 阅读 · 0 评论 -
centos7 mysql安装
首先查看centos7上有没有安装过mysql ,一定要卸载干净残留,不然会安装或启动失败。yum list installed mysql*列出后如果有就删除删除mysqlsudo yum remove mysql-community-*rm -rf /var/lib/mysqlrm /etc/my.cnf安装yum源wget https://dev.mysq...原创 2020-01-23 02:34:33 · 100 阅读 · 0 评论 -
SQLAlchemy 学习笔记(二):ORM 基础
照例先看层次图一、声明映射关系使用 ORM 时,我们首先需要定义要操作的表(通过Table),然后再定义该表对应的 Python class,并声明两者之间的映射关系(通过Mapper)。方便起见,SQLAlchemy 提供了 Declarative 系统来一次完成上述三个步骤,Declarative 系统提供 base class,这个 base class 会为继承了它的 Py...原创 2019-12-23 14:03:07 · 347 阅读 · 0 评论 -
MySQL数据迁移
数据导出(备份)mysqldump -h127.0.0.1 -uusername -ppassword dbname > tmp.dump数据导入(恢复)mysql -h127.0.0.1 -uusername -ppassword dbname < tmp.dump原创 2019-12-19 16:29:24 · 93 阅读 · 0 评论 -
mysql8.0版本 GROUP BY 不能排序
大体数据结构是这样:我想要分组获取creatTime最小一行的数据:ebf4a196fd5df8ad61e411c768b32148 金科水务工程(北京)有限公司 金科环境股份有限公司 2019-08-23 16:08:35但是我写的sql死活都查询不到SELECT * FROM ( SELECT * FROM alias_name WHERE oldCompanyN...原创 2019-11-27 11:45:22 · 2473 阅读 · 1 评论 -
数据库SELECT COUNT语句
关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT尝尝问道以下问题1、COUNT有几种用法?2、COUNT(字段名)和COUNT(*)的查询结果有什么不同?3、COUNT(1)和COUNT(*)之间有什么不同?4、COUNT(1)和COUNT(*)之间的效率哪个更高?5、为什么《阿里巴巴Java开发手册》建议使用COUNT(*)...原创 2019-11-05 10:18:53 · 2662 阅读 · 0 评论 -
mysql 主从复制
MySQL 主从复制原理的是啥?主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行 binlog 日志中的内容,也就是在自己本地再次执行一遍 SQL,这样就可以保证自己跟主库的数据是一样的。主要涉及三个线程...原创 2019-10-24 08:58:33 · 126 阅读 · 0 评论 -
SSCursor (流式游标) 解决 Python 使用 pymysql 查询大量数据导致内存使用过高的问题
# -*- coding: utf-8 -*-'''Chinese comments are used below, need to be added'''# Author: xiaolong.shi# Email: xiaolong@zamplus.comimport GeoCodeclass AddGeocode(object): def __init__(self)...原创 2019-04-26 16:20:53 · 2988 阅读 · 0 评论 -
MySQL:if语句、if...else语句、case语句,使用方法解析
if语句做为表达式使用,语法格式如下:IF(expr1,expr2,expr3)说明: 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。例子: ...原创 2020-12-28 10:40:20 · 153171 阅读 · 12 评论 -
MySQL STR_TO_DATE函数
STR_TO_DATE(str,format)函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值。DATE_FORMAT(date,format)函数则是把数据库的日期转换为对应的字符串格式,比较常见,不做解释。SELECT STR_TO_DATE('2017-01-06 10:20:30','%Y-%m-%d %H:%i:%s') AS ...原创 2019-04-26 11:02:48 · 6567 阅读 · 0 评论 -
Python实现MySQL连接池
Python实现MySQL连接池摘要:python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立...原创 2019-04-15 17:06:07 · 1432 阅读 · 0 评论 -
MySQL 百万级以上分页优化
正常我们码农数据库的时候一般都是以下这种查询方式:select * from table order by id limit 100000, 10;但是以上这种查询会导致我们数据慢死,一般我们采用以下方式:select * from table order by id limit 1000000, 10;以上这种查询也不算最快 查询大概也要十几秒,数据不算太多采用以上方式,...原创 2019-05-08 13:43:48 · 261 阅读 · 0 评论 -
对于mysql中的group by分组后获取组内创建时间最大的那行数据
1、问题场景:group分组之后,一个组中会有好几条数据,但是一般默认返回id最小的那一条,现在想返回创建时间最大的那一条数据。如图所示,根据上面的QUALITY_ID来查询数据,会有两条数据产生,这个时候直接分组group,产生的结果是:2、解决方法:(1)先根据创建时间倒叙,根据倒叙完的视图进行分组group或者把查询的条件从内查询中放到外查询中也是可以的:...转载 2019-05-05 19:07:41 · 1392 阅读 · 0 评论 -
Python数据库连接池DBUtils(基于pymysql模块连接数据库)
安装pip3 install DBUtilsDBUtils是Python的一个用于实现数据库连接池的模块。此连接池有两种连接模式:BDUtils数据库链接池:模式一:基于threaing.local实现为每一个线程创建一个连接,关闭是伪关闭,当前线程可以重复模式二:连接池原理如果有三个线程来数据库中获取连接:如果三个同时来的,一人给一个连接;如果一个一个来,有时间间隔,用一...原创 2019-05-09 17:12:11 · 774 阅读 · 0 评论 -
DBUtils.PooledDB 创建数据库连接池
import pymysql, os, configparserfrom pymysql.cursors import DictCursorfrom DBUtils.PooledDB import PooledDBclass Config(object): """ # Config().get_content("user_information") 配置文件里面...原创 2019-05-07 20:22:05 · 2510 阅读 · 0 评论 -
基于DBUtils.PooledDB 实现Python中多线程写入读取数据库 提高执行速度
python多线程并发操作数据库,会存在链接数据库超时、数据库连接丢失、数据库操作超时等问题解决方法:使用数据库连接池,并且每次操作都从数据库连接池获取数据库操作句柄,操作完关闭连接返回数据库连接池如果不使用数据库连接池, 直接使用多线程去操作数据库, 会遇到资源竞争, 争夺cursor游标,Thread对象的Lock和Rlock可以实现简单的线程同步,对cursor进行加锁,但是这...原创 2019-05-28 11:08:58 · 5622 阅读 · 1 评论 -
MySQL5.7版本sql_mode=only_full_group_by问题解决办法
在服务器数据库查询使用了 GROUP BY 居然报出了1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'csc_risk.a.DefaultDate' which is not functionally dependent on columns in...原创 2019-08-15 17:52:16 · 106547 阅读 · 20 评论 -
MySQL高级 之 索引失效与优化详解
案例所用的表结构、索引、与数据如下: 索引失效与优化1、全值匹配我最爱2、最佳左前缀法则(带头索引不能死,中间索引不能断...转载 2019-09-10 11:11:06 · 82 阅读 · 0 评论 -
MySQL数据库 WHERE与HAVING的区别
总结自己面试遇到手写sql题一个SQL查询出表fenshu, 语文课程的成绩都大于80的学生姓名如下一张表:+--------+---------+---------+| name | kecheng | chengji |+--------+---------+---------+| 张三 | 语文 | 81 || 张三 | 数学 | ...原创 2019-03-20 17:47:45 · 306 阅读 · 0 评论