自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(409)
  • 收藏
  • 关注

原创 mysql online ddl更改varchar长度的锁表情况

缩小字段长度不能使用inpalce,只能使用copy方式,会锁表。放大字段长度:in-place的方式只支持varchar列的字节数在0~255之间或者256~256+之间变动,不支持从小于等于255的值增大到255以上。以UTF8mb4编码为例,一个字符占4个字节。如:varchar(20)--》varchar(63),inplace方式,不锁表。varchar(64)--》varchar(120),inplace方式,不锁表。

2024-02-21 15:12:19 1125

原创 MySQL 查询遇到Illegal mix of collations的错误

Unicode是一个字符集,它定义了每个字符的唯一编码点。它为世界上几乎所有的字符分配了一个唯一的编码值,包括字母、数字、标点符号、符号、表情符号等。UTF-8是一种用于表示Unicode字符的编码方案,它定义了如何将Unicode字符编码为字节序列。

2024-02-21 15:10:01 1034

原创 mysql 非definer用户如何查看存储过程定义

8.0版本之前,非definer用户查看存储过程定义,我们可以通过授予该用户对mysql.proc的select权限来达成目的。此外,8.0.20之前,通过授予用户对所有库的select权限也可以实现。不够这个权限太大了。8.0.20之后,可以通过授予用户的show_routine权限来解决问题。参考: https://dba.stackexchange.com/questions/184724/permissions-for-mysql-show-create-procedure。

2023-07-31 17:03:22 614

原创 MySQL创建全文索引时,遇到“Temporary file write failure”的错误

MySQL 8.0.28、8.0.32版本bug,当innodb_disable_sort_file_cache为ON时,无法在表上创建全文索引,错误提示:临时文件写入失败。我们可以通过将innodb_disable_sort_file_cache设置为OFF,暂时规避这个问题。

2023-07-25 20:47:27 1124

原创 MySQL之全文索引二三事

mysql使用全文索引来提高文本搜索的效率。我们可以使用FULLTEXT关键字来声明一个全文索引列,创建全文索引后,可以使用MATCH AGAINST语句来执行全文搜索查询。我们需要使用ngram分词器来支持中文全文搜索。ngram_token_size用来指定令牌大小。全文搜索支持两种主要的查询模式:自然语言模式和布尔模式,自然语言模式通常更易于使用和理解,但可能会导致一些不准确的结果。布尔模式更灵活,可以更精确地控制搜索条件,但需要更多的查询语法知识。

2023-07-24 10:00:54 369

原创 mysql中的Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests

Innodb_buffer_pool_reads衡量了需要从磁盘读取数据到缓冲池的次数;Innodb_buffer_pool_read_requests衡量了数据已经在缓冲池中而无需从磁盘读取数据;Innodb_buffer_pool_read_requests涉及到 CPU 资源的消耗,我们在处理CPU性能问题时可重点关注该指标;参考:点个“赞 or 在看” 你最好看!喜欢,就关注我吧!

2023-07-19 16:11:56 1547

原创 mysql 将date字段默认值设置为CURRENT_DATE

mysql中,8.0.13版本之后的允许将Date字段的默认值设置为CURRENT_DATE(当前日期),但是之前的版本则不允许。设置CURRENT_DATE默认值,需要将其包裹在圆括号内,以区分常量默认值,否则将报语法错误。

2023-06-19 16:25:59 5915 1

原创 pg常用工具之pg_waldump

mysql中,读取binlog,可以利用mysqlbinlog工具。那么pg中是否可以对wal日志进行解析呢?答案是可以的,工具就是pg_waldump。

2022-10-11 18:57:06 2905 1

原创 postgresql的死锁检测机制

死锁检测,是pg的一种自动检测机制,可以发现两个或者多个session之间对互斥资源的申请造成的死锁,并且可以随机将其中一个事务回滚掉,以解除死锁。特殊情况下,如果我们想定位死锁问题,我们可以先调大这个值,让因死锁而“挂起“的会话,维持“挂起”状态的时间更长点,以便我们定位具体SQL。死锁只有在锁存在的情况下才会发生,所以缓解死锁的一个策略就是减少锁的使用,比如说避免大事务,尽量减少显式锁的使用,减小锁的粒度等。一般我们要确保使用数据的所有应用程序,以一致的顺序获取多个对象上的锁,防止出现互相等待的情况。.

2022-07-29 14:07:13 2802

原创 数据库术语中的基数和选择性

在数据库中,某一列的唯一键(distinct Keys)的数量叫作基数。比如性别列,该列只有男女之分,所以这一列基数是2。主键列的基数等于表的总行数。查看某个列的基数。选择性列的基数与表中总行数的比值再乘以100%就是某个列的选择性。列的选择性可以衡量数据库索引能够帮助缩小对表中特定值的搜索范围的程度。查看某个列的选择性。我们知道索引最重要的目的之一是尽可能地缩小匹配行的初始候选值,从而减少io,提升查询性能。所以通常来说索引的选择性越高则查询效率越高,因为选择性高的索引可以让数据库在查找时

2022-06-15 18:31:36 1620 1

原创 MySQL的执行计划key_len

mysql explain key_len的含义

2022-05-13 16:00:48 2259

原创 vue改变当前url query值,但不发生跳转

方法:this.$router.push({ query: { activeKey: 'all', },});

2022-04-19 17:00:53 2586

原创 postgresql之提升distinct查询性能

在pg中,distinct关键字与select语句一起使用,用于去除重复记录。然而postgresql目前缺乏从有序索引中有效提取唯一值列表的能力, 它需要扫描整个索引来找到唯一的值。随着表的增长,这个操作会很慢。对一个大表(几百万行甚至更大)的某个字段进行distinct操作,其执行计划可能如下图所示正如我们所知,HashAggregate通过在内存构建数据的哈希表来对数据进行分组,而这通常会打来较大的性能损耗。针对distinct或group by慢的问题,mysql中提供了Loo.

2022-04-02 22:43:14 4327 2

原创 JSON.parse解析json字符串遇换行符报错问题解决

如下所示字符串,使用JSON.parse解析时,报错。var json='{"CityName":"西安","CityOrder":"物料::WAA010001\n物料名称::轴承\n规格型号::HRB1209\n供应商::东莞市耀光化工贸易有限公司\n采购员::\n请购部门:: \n批号::JH201803250001"}';解决:字符串需要进行转义。var jsonObj=JSON.parse(json.replace(/\n/g,"\\n").replace(/\r/g,"...

2022-03-29 13:36:22 2659

原创 git 撤销git add

如果是撤销所有的已经add的文件:git reset HEAD .如果是撤销某个文件或文件夹:git reset HEAD -filename

2022-03-11 18:39:54 506

原创 js计算数组中某值的出现次数

解决:结合reduce实现const countOccurences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);countOccurences([1,3,4,6,1,3,5,6,3,1],1));参考:javascript计算数组中某值的出现次数_Xiao_Spring的博客-CSDN博客...

2022-02-23 13:50:26 556

原创 js 获取对象数组中某一属性所组成的list

比如有如数组如下:[{a:1,b:2,c:3},{a:4,b:5,c:6},{a:7,b:8,c:9}]我想获取这个数组的 a 属性所组成的list,返回 1,4,7 。有多种方法比如for 、forEach、filter、map。map怎么用?var data = [ {a:1,b:2,c:3}, {a:4,b:5,c:6}, {a:7,b:8,c:9} ];// 使用了 ES6 语法var a_list = data.map(item => item.a)

2022-02-23 13:43:03 4177

原创 给el-table表头加必选星号

效果:解决方法:1. 在el-table-column 上添加render-header属性。render-header指定列标题 Label 区域渲染使用的 Function。<el-table-column label="地域" align="center" :render-header="addRedStar"></el-table-column>2.addRedStar函数。 addRedStar(h, { column }) { // 给

2022-02-23 11:23:24 1368 1

原创 修改ElementUI默认表单项el-form-item间距

ElementUI的表单组建el-form的表单项之间的间距怎么改?解决:表单组件之间的间距可以在CSS中设置。.el-form-item{ margin-bottom: 0px;}示例:修改后:

2022-02-23 11:05:52 19325 2

原创 libc.so.6: version `GLIBC_2.18‘ not found错误

运行:strings /lib64/libc.so.6 |grep GLIBC_2.18发现没有GLIBC_2.181.下载wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gz2.解压tar -zxvf glibc-2.18.tar.gz3.进入解压文件夹,创建文件夹build。cd glibc-2.18mkdir build4.编译。cd build../configure --prefix=/

2022-01-12 10:12:19 2137

原创 MongoDB之稀疏索引

稀疏索引(或者称间隙索引):sparse index, 就是只包含有索引字段的文档的条目,跳过索引键不存在的文档。比如如下所示条目:<span style="color:#000000"><span style="background-color:#ffffff"><code><span style="color:#e6c07b">test</span>:PRIMARY>db.scores.<span style="co...

2022-01-10 16:35:22 1080

原创 python 虚拟环境

1、安装virtualenv。pip3 install virtualenv2、查看版本,确认安装成功。virtualenv --version3、切到需要创建虚拟环境的项目文件根目录下cd /soft/tuya_database_backup4、创建文件夹。mkdir venv5、创建python虚拟环境并激活。virtualenv venvsource ./venv/bin/activate6、在该虚拟环境下安

2021-12-07 11:22:54 635

原创 MySQL查询默认不区分大小

mysql的查询默认是不区分大小写的。看个例子:可以看到使用如下语句,查询到了同一条记录。select * from tba where name = 'test';select * from tba where name = 'TEST';mysql的表查询大小写是否敏感,取决于字段的collate设置。我们看下这张表的charset和collate。charset是utf8,而utf8的默认collate规则是utf8_general_ci。(可通过show cha..

2021-11-24 20:02:34 2406

原创 zipimport.ZipImportError: can‘t decompress data; zlib not available

python安装报错:zipimport.ZipImportError: can't decompress data; zlib not available解决:yum -y install zlib*

2021-11-13 18:16:37 2203

原创 ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

执行python脚本,报错:ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory。看意思是缺少libpython3.6m.so.1.0这个动态库。在机器上查找这个库:sudo find / -name libpython3.6m.so.1.0如果在本地能找到,就将其复制到/usr/lib64目录下。cp libpython3.6m.so.1.0 /usr

2021-11-13 11:14:33 9390

原创 yum install报错“Error: rpmdb open failed“

yum安装包,提示错误“Error: rpmdb open failed”。解决:rpm --rebuilddb

2021-11-12 17:06:04 1083

原创 psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory

Centos7 使用pip安装psutil时报错,提示: psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory #include <Python.h> ^ compilation terminated. error: command 'gcc' failed with exit status 1解决:...

2021-11-12 17:04:00 1750

原创 MongoDB之rotate log

当mongodb实例启动时指定logpath或systemLog.path参数,mongod和mongos实例将向日志文件中持续的记录数据库的活动日志。而MongoDB默认情况下不会自动的切换日志的,这将会导致服务日志日渐增大,在业务繁忙的场景,日志的增长量会非常大。持续增长的日志文件,不仅占用系统磁盘,并且还会拖慢服务器的运行速度。所以我们需要能对服务日志进行日志切换。在MongoDB中,切换日志的触发条件有两种:1、admin库下执行logRotate命令。useadmin...

2021-11-11 19:45:29 1051

原创 PostgreSQL之双冒号(::)的含义

对于一些从mysql转过来或不熟悉pg的开发者来说,可能在看到SQL中使用"::"符号时会表示疑问,这个符号表示什么含义呢?近期有被问到这个问题,所以还是记录一下。"::" 符号其实是一个强制类型转换符,作用等同于CAST。在很多情况下,我们需要将一种数据类型的值转换为另一种数据类型。那么我们就可以使用它来进行转换。"::"的语法格式为:expression::type用法示例:postgres=#SELECT'100'::INTEGER,'01-O...

2021-11-07 11:41:06 12343 2

原创 js格式化json的代码demo

方法:1、先将JSON字符串串转化为json对象。var jsonString = '{"name":"王小二","age":25.2,"birthday":"1990-01-01"}' //普通json字符串var jsonObj = JSON.parse(jsonString) //把json字符串转为json对象2、使用JSON.stringify对json对象进行格式化,其中4指的是代码缩进量。JSON.stringify(jsonObj, null, 4)...

2021-10-16 14:21:50 327

原创 MongoDB部分索引(Partial Indexes)和稀疏索引(Sparse Indexes)的区别

参考文档:​​​​​​mongoose - What is difference between partial indexes and sparse indexes mongodb? - Stack Overflow稀疏索引稀疏索引只包含具有索引字段的文档(包含索引字段是空值的文档),它将跳过任何没有索引字段的文档。索引是“稀疏的”。非稀疏索引包含集合中的所有文档,为那些不包含索引字段的文档存储空值。假设你有包含如下文档的集合:{ _id: 1, firstname: 'John

2021-10-14 11:21:07 433

原创 python json.dumps 中文

我们知道python 中json.dumps()函数用于将一个Python数据类型列表进行json格式的编码,换句话说json.dumps()函数是将字典转化为字符串。比如:import jsondic = {"name":"James"}print(json.dumps(dic))但是如果dict中包含中文,输出的str就是保护乱码的字符串。如:import jsondic = {"name":"哈哈"}print(json.dumps(dic))'''输出..

2021-10-08 17:01:14 2644

原创 PostgreSQL之外键约束

外键又称外键约束,Foreign key constraint。外键是一个表中,用于标识另一张表中行的一个字段或多个字段。包含外键的表称为引用表,外键引用表称为被引用表。所谓外键约束是指引用字段必须在被引用字段中出现。被引用字段需要是唯一约束或主键。外键约束维护引用表和被引用表之间的参照完整性(referential integrity)。外键约束可以在创建表时定义,也可以在表创建后通过alter table语句定义。定义外键约束的完整语法<span style="col..

2021-09-28 17:51:19 8207

原创 MongoDB objectId和时间互相转换

MongoDB默认使用_id字段作为主键,类型为ObjectID。Objectid的生成一定的规则,Objectid有12位: 前4位是时间戳 中间5位是随机值 后3位是递增计数器 基于这个特性,我们可以通过_id字段的值来还原当时的时间。import timefrom bson.objectid import ObjectIdimport datetimedef time2id(from_datetime=None, time_delta=None):

2021-09-23 18:09:33 2551

原创 element ui el-radio-group 增加垂直排列

使用el-radio-group, 只能进行水平排列。如:像让其垂直排列怎么办?解决:可以通过添加div实现垂直排列<template><el-radio-group v-model="selectMod" size="small" type="vertical"><div v-for= index of 3> <el-radio-button label="第一列"></el-radio-button>.

2021-07-31 15:23:05 12073

原创 MongoDB : applyOps: not authorized on admin to execute command

参考:https://stackoverflow.com/questions/55208028/mongodb-applyops-not-authorized-on-admin-to-execute-command解决:use admindb.createRole( { role: "interalUseOnlyOplogRestore", privileges: [ { resource: { anyResource: true }, action

2021-07-26 11:21:45 287

原创 Mongo shell不会解析连接串中的readPreference参数

可见issue:https://jira.mongodb.org/browse/SERVER-48769如题,mongo shell不会解析连接串中的readPreference参数。比如:启动一个mongo shell,在URI中设置readPreference=secondary的。提示符显示它连接到主服务器。./mongo "mongodb://xxx@xxxx@host1:27017,host2:27017,host3:27017/admin?replicaSet=r

2021-07-22 10:00:16 888

原创 centOS 安装MongoDB客户端

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.6.tgzcd /usr/local解压sudo tar -zxvf /tmp/mongodb-linux-x86_64-4.0.6.tgz重命名sudo mv mongodb-linux-x86_64-4.0.6 mongodb使用mongo客户端cd /usr/local/mongodb/bin./mongo "mongodb://xxx:xx.

2021-07-19 19:58:08 1787

原创 zlib.error: Error -5 while decompressing data: incomplete or truncated stream

参考:https://stackoverflow.com/questions/32367005/zlib-error-error-5-while-decompressing-data-incomplete-or-truncated-stream-inmysql业务表中有一个字段longtext类型,数据太大,所以决定使用zlib压缩之后存储到mysql中。在存入的时候,使用zlib.compress进行压缩,在查询的时候,使用zlib.decompress进行解压缩。压缩: compres

2021-07-16 15:41:11 3321

原创 mongodb单机实例开启oplog

参考:https://www.cnblogs.com/xuliuzai/p/9643128.htmlMongoDB的副本集有一个数据结构oplog,里面存储了primary节点所有写操作。但是单实例没有这个结构,那么单台MongoDB实例怎么开启oplog?方法:以副本集方式启动实例,在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。一、以副本集方式启动实例:添加副本集参数(replSet=??)比如:./mongod --dbpath /u

2021-07-07 18:22:54 981

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除