![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
1.MySQL
MySQL常见的知识点及爬坑指南。
virgil.wang
苦学技术,精进业务
展开
-
LBS计算附近的对象:MySQL 空间索引方式
MySQL空间数据类型官方文档MySQL空间数据类型是指MySQL数据库中支持的存储地理位置信息的数据类型,包括点、线、多边形等。这些数据类型可以用来存储地图坐标、地址信息等。MySQL空间数据类型基于OpenGIS空间数据类型标准,提供了对空间数据进行索引和查询的功能,可以方便地实现地图应用、位置搜索等功能。原创 2023-04-12 18:51:22 · 1471 阅读 · 1 评论 -
MySQL COALESCE函数 返回最近一个有值的元素
1. 场景描述sku 分为 普通商品和赠品,普通商品的品牌信息需要从 prod_product_group_rel 表中获取到,但 prod_sku 表的 brand 为空,赠品的 prod_sku 记录 brand 有值,但 prod_product_group_rel 为空。需要从 prod_sku 表中获取一批普通商品和赠品的品牌数据,需要先从 prod_sku 表中获取 brand,如果 prod_sku 表中的 brand 为空,则从 prod_product_group_rel 表中获取品牌原创 2021-05-09 10:36:20 · 106 阅读 · 0 评论 -
SQL&MySQL语句的执行顺序
一、 SQL语句的执行顺序List itemFROMJOINONWHEREGROUP BYAVG, SUM…HAVINGSELECTDISTINCTORDER BY二、MySQL语句的执行顺序List itemFROMWHEREGROUP BYHAVINGORDER BYSELECTLIMIT原创 2020-08-06 10:53:12 · 90 阅读 · 0 评论 -
Mysql Json操作
获取json内的某字段值的值$.column.name比较$.column.name = '春晓'查询的结果中包含双引号,不显示双引号JSON_UNQUOTE(ps.sale_attr -> '$.spec')原创 2020-11-03 14:55:26 · 82 阅读 · 0 评论 -
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: #HY000
1. 场景描述多个服务不可用,经日志查询,是访问数据库时报错,其中有的服务启动报错,有的服务启动虽然成功,但访问数据失败。2. 错误描述程序代码报错SQLyog 访问数据也会报错3. 错误排查3.1 程序代码确认没有调整3.2 数据库版本确认没有调整3.3 数据库服务运行状态显示数据库连接过多磁盘被打满,导致无法进行数据写入,报错4. 解决方案修改数据库的目标节点增大磁盘空间或者整理磁盘空间5. 关于错误原因分析磁盘被打满,为什么会报出MySQLNo原创 2021-02-13 10:10:39 · 1148 阅读 · 3 评论 -
Java - 3年 MySQL面试被问到的知识点汇总
如何定位并优化慢查询SQL?根据满日志定位慢查询SQL# 慢日志的相关配置show variables like '%quer%';# 慢查询的数量show status like '%slow_queries&';long_query_time 当查询超过该时间时,会记录到slow_query_log_fileslow_query_log 慢日志记录功能是否被打开slow_query_log_file 慢日志的文件存放位置使用 explain 等工具分析.原创 2021-05-09 10:37:41 · 109 阅读 · 0 评论 -
数据库事务和ACID的关系
数据库事务的定义及其与ACID的关系。原创 2021-05-09 10:39:32 · 149 阅读 · 0 评论 -
MySQL - 根据生日计算年龄
SELECT name, birth, CURDATE(), TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM pet;原创 2021-06-22 19:28:02 · 2134 阅读 · 0 评论 -
MySQL a-b,若B为NULL,结果为NULL不为a
场景描述如题目所示。解决方案在b上,用IFNULL函数,SELECT a-IFNULL(b, 0)。IFNULL(b, 0)的含义是若b为null,则转换成0进行运算。原创 2020-12-26 10:41:46 · 273 阅读 · 0 评论 -
MySQL update在原值上新增新值
需求在电商中,需要给商品新增昵称词。商品昵称词在表中以逗号,分隔开,所以在批量新增昵称词时,如商品原本有昵称词,则在原有昵称词后边附加,新昵称词,如果没有昵称词,则直接新增昵称词。SQL语句这里我分两步来做:这里要严格按照下边的顺序来做,防止重复附加值昵称词不为空的更新为CONCAT(nickname, ',昵称词')昵称词为空的更新为昵称词UPDATE product.prod_product_ext SET nickname = CONCAT(nickname, ',SKII') W原创 2020-08-12 17:30:32 · 3253 阅读 · 0 评论 -
MySQL my.cnf 配置文件
#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选项。[client]port = 3309socket = /usr/local/mysql/tmp/mysql.sock[mysqld]!include /usr/local/mysql/etc/mysqld.cnf #包含的配置文件 ,把用户原创 2020-09-23 17:00:44 · 1196 阅读 · 0 评论 -
Docker 安装 MySQL 8.0.23
1. 准备数据卷mkdir -p /mydata/mysql/{log,data,conf,mysql-files}2. 启动MySQLsudo docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-v /home/mysql/mysql-files:/原创 2021-02-07 16:26:27 · 981 阅读 · 1 评论 -
MySQL DDL
摘要MySQL生成表有两种方式,一种是通过工具,另一种是手写DDL(Data Definition Language)。通过工具设计表结构通常比较简单,这里我分享一个较好得DDL,分析点主要包括:公共字段放哪些合适?字段该选用哪种类型和类型的取值范围如何确定?DDL中的关键字都代表了什么?DDL展示CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varch原创 2020-09-02 15:21:36 · 119 阅读 · 0 评论 -
MySQL DDL 在指定位置新增字段
添加字段ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件][备注];末尾新增字段ALTER TABLE student ADD age INT(4) COMMENT '年龄';开头新增字段ALTER TABLE student ADD age INT(4) COMMENT '年龄' FIRST;在中间新增字段ALTER TABLE student ADD age INT(4) COMMENT '年龄' AFTER name;原创 2021-03-12 16:07:18 · 1381 阅读 · 0 评论 -
MySQL 随机生成字符串或数据
1. 使用场景造数据。2. 实例生成随机字符串substring(MD5(RAND()), 1, 12)生成随机正整数FLOOR(RAND() * 10000000)原创 2021-09-18 17:18:50 · 241 阅读 · 0 评论 -
MySQL 通过客户端连接失败 1130
错误描述使用root用户名无法通过客户端来访问到MySQL服务。推理MySQL8.0中,root用户不能够通过客户端访问到MySQL服务,是因为root的权限过大,存在权限安全隐患。我们可以通过root用户来创建权限较大的用户,再通过数据库客户端访问服务。创建用户及分配权限# 切换数据库use mysql;# 创建用户create user 'virgil'@'%' IDENTIFIED BY 'v*0n$kZR';# 分配角色GRANT ALL PRIVILEGES ON *.* T原创 2020-12-04 15:08:07 · 157 阅读 · 0 评论 -
centos 安装MySQL8.0
使用安装包进行安装需要先安装一些依赖项,并可能与其它软件包发生冲突。二进制文件使用高级编译器进行预编译,并采用最佳选项构建,以实现最佳性能。1. 安装libaio库yum install -y libaio2. 下载Mysql安装包# 进入目录cd /opt# 选择云镜像下载mysql安装包wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz# 添加m.原创 2020-12-04 13:59:06 · 646 阅读 · 0 评论