Mysql应用总结

玩转MySQL:如何正确应用索引 至此,MySQL索引应用篇,也就是索引中篇就结束了,相信大家认真看完本篇之后,对于索引的掌握性、熟练程度绝对会更上一层楼,因为本章中从索引的优劣分析,到建立索引的原则、索引失效的情景、使用索引的正确姿势、MySQL对于索引的优化机制等各方面,对索引进行了进一步阐述。 阅读详情

Mysql应用总结

1 层次树型查询

Mysql需要借助自定义函数getChildLst 和Mysql自带的FIND_IN_SET函数实现层次查询,ABC是数据库名称。

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Function structure for getChildLst
-- ----------------------------
DROP FUNCTION IF EXISTS `getChildLst`;
DELIMITER ;;
CREATE DEFINER=`ABC`@`%` FUNCTION`getChildLst`(rootId INT) RETURNS varchar(1000) CHARSET utf8
BEGIN
      DECLARE sTemp VARCHAR(1000);
      DECLARE sTempChd VARCHAR(1000); 
      SET sTemp = '$';
      SET sTempChd =cast(rootId as CHAR); 
      WHILE sTempChd is not null DO
        SET sTemp = concat(sTemp,',',sTempChd);
        SELECT group_concat(RULE_ID) INTO sTempChd FROM TB_RTA_CORE_CHECK_RULEwhere FIND_IN_SET(PARENT_ID ,sTempChd)>0;
      END WHILE;
      RETURN sTemp;
 END
;;
DELIMITER ;

查询示例语句:

SELECT  RULE_ID,PARENT_ID,RULE_NAME,ORDER_CODEFROM TB_RTA_CORE_CHECK_RULE WHERE FIND_IN_SET(RULE_ID, getChildLst(#ruleId#))ORDER BY PARENT_ID,ORDER_CODE

FIND_IN_SET函数语法介绍:

假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。
一个字符串列表就是一个由一些被‘,’符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
mysql> SELECT FIND_IN_SET('b','a,b,c,d');

返回2因为b 在strlist集合中放在2的位置从1开始

select FIND_IN_SET('1','1'); 返回 就是1 这时候的strlist集合有点特殊 只有一个字符串 其实就是要求前一个字符串 一定要在后一个字符串集合中 才返回 大于0的数
select FIND_IN_SET('2','1,2');返回2
select FIND_IN_SET('6','1'); 返回0

注意:
select * from treenodes where FIND_IN_SET(id,'1,2,3,4,5');
使用find_in_set函数一次返回多条记录
id 是一个表的字段 然后每条记录分别是id等于1,2,3,4,5的时候
有点类似in (集合)
select * from treenodes where id in (1,2,3,4,5);


2.按字段删除重复记录

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people 
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段) 
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

比方说在A表中存在一个字段“name”,而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1

如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

实例1:按照BATCH_ID,FILE_NAME字段去重,保留CRT_DATE较小者

DELETE FROM tb_ctl_collect_log WHERE(BATCH_ID,FILE_NAME) IN (
 SELECT a.BATCH_ID,a.FILE_NAME FROM
  (
  SELECT BATCH_ID,FILE_NAME FROM tb_ctl_collect_log GROUP BYBATCH_ID,FILE_NAME HAVING COUNT(*)>1
  AND EXISTS (SELECT MIN(CRT_DATE) AS CRT_DATE FROM tb_ctl_collect_logGROUP BY BATCH_ID,FILE_NAME HAVING 
   COUNT(*)>1)
  )a
 );

3. You can't specify target table for update in FROMclause错误解决

delete from tbl where id in 
(
        select max(id) from tbl a where EXISTS
        (
            select 1 from tbl bwhere a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
)

改写成下面就行了:
delete from tbl where id in 
(
    select a.id from 
    (
        select max(id) id from tbl a where EXISTS
        (
            select 1 from tbl bwhere a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
    ) a
)

4 mysql数据导出命令(mysqldump )和导入命令(source )

导出TB_RTC_DIM_ORG_DEV至文件TB_ RTC _DIM_ORG_DEV中

-h 主机IP –u 数据库用户名 –p 数据库密码 storm 数据库

 mysqldump -h192.168.128.128 -uroot –p123456 storm TB_RTC_DIM_ORG_DEV>TB_RTC _DIM_ORG_DEV &

 导入TB_ RTC _DIM_ORG_DEV至另一个数据库中

source命令每次执行都会覆盖(若TB_RTC_DIM_ORG_DEV表存在)

 source /home/robinjun/data/ TB_ RTC _DIM_ORG_DEV

5 mysql shell模式导入导出数据命令

应用场景:INSERT...SELECT...和 CREATE TABLE...SELECT...语句,可能会阻止对源表的并发更新,造成对源表锁的等待。如果查询比较复杂的话,会造成严重的性能问题,我们在应用中应尽量避免使用。实际上,MySQL将这种SQL叫作不确定(non-deterministic)的SQL,不推荐使用。

脚本示例:

#!/bin/bash
while true
do
//从表导出至文件
mysql –h192.168.128.128 -uroot –p123456 -N –e"SELECT * FROM storm.tb_rtc_data" >/data01/mysql01/data/ tb_rtc_data
//从文件导入至表
mysql -h192.168.128.128 -uroot -p123456  -N –e "load data infile '/data01/mysql01/data/tb_rtc_data '  into table storm.tb_rtc_dm_data_5_secfields terminated by '#' "
rm /data01/mysql01/data/tb_rtc_data
//休眠4s
sleep 4
done

Redis Lua引擎UAF漏洞CVE-2025-49844深度剖析与复现实践 内存安全是软件系统稳定性的基石,其核心原理在于确保程序对内存的访问始终处于合法、受控的状态。在C/C++等手动管理内存的语言中,Use-After-Free(释放后使用)是一种典型的高危内存安全漏洞,它源于已释放的内存区域仍被程序指针引用,导致数据混乱或程序崩溃。这类漏洞的技术价值在于其往往能突破高级语言的安全边界,直接威胁进程本身,危害等级极高,常见于数据库、浏览器等核心基础设施。在Redis这样的高性能内存数据库中,其内置的Lua脚本引擎为复杂操作提供了强大支持,但同时也引入了沙箱环境下的复杂内存对象生 阅读详情

相关推荐

485芯片AB波形正负半周的问题探讨

      本人做的一个产品,产品的其中一个接口是RS485的,我们使用的芯片是MAX13487E。MCU是STM32F103,MCU的USART通过光耦隔离后,接到MAX13487E。因为STM32F103的VCC是3.3V的,MAX13487E的VCC是5V。      部分原理图如下,上述部分电路参考了官方的参考设计,现在测试的AB波形时候发现如下问题。1.把R10和R16改为1k,示波器C...

qq_26308521的博客 1万+

MySQL的应用

2502_90972454的博客 820

【通信协议-RTCM】MSM语句(1) - 多信号GNSS观测数据消息格式

注释:RTCM响应消息1020为GLONASS星历信息,暂不介绍,前公司暂未研发RTCM消息类型版本的DR/RTK模块,DR/RTK模块仅NMEA消息类型使用注释:公司使用的多信号语句类型为MSM4&MSM7,也应该是运用最广泛的语句类型,例如本人之前在公司开发的工具全是基于MSM7语句类型来进行的。

qxj2422640226的博客 2092

Mysql8应用架构

一、Caches & Buffers(缓存和缓冲)

m0_73378442的博客 1814

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思?

在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。

m0_67897882的博客 5430

HFSS微带线仿真从零到一:材料参数与求解设置优化指南

在射频电路设计中,微带线仿真涉及电磁场求解与传输线理论,其精度高度依赖材料参数和求解设置。相对介电常数、损耗角正切和导体电导率等参数直接影响特性阻抗与插入损耗,而求解频率、网格划分和参数扫描则决定仿真效率与收敛性。合理设置这些参数可显著提升S参数准确性,避免设计迭代。应用场景包括天线馈线、滤波器和微波互连。本文基于HFSS微带线仿真实践,系统讲解材料选择与参数优化全链路,帮助工程师快速复现可靠模型。

weixin_29192211的博客 79

MySQL的安装与应用

MySQL安装 ①官网下载mysql-server(yum安装) wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 若wget不可用,下载安装wget:yum -y install wget ②解压rpm -ivh mysql-community-release-el7-5.noarch.rpm ③安装yu...

qq_42713999的博客 206

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型

本文提供了一份快速部署指南,教你如何在5分钟内利用FunASR工具包在本地电脑上启动达摩院Paraformer语音识别模型。Paraformer作为一款非自回归端到端模型,以其推理速度快、识别精度高的特点,结合FunASR的一键式模型加载和统一API,让开发者能轻松构建本地语音识别系统,极大降低了前沿AI技术的应用门槛。

q9w8e7r6t5的博客 604

mysql锁的应用

mysql数据库锁的应用 比如说 行锁 读锁 写锁 表锁....

m0_74036006的博客 503

RustDesk网页端远程控制实战:如何用Web Client替代传统客户端(附安全配置建议)

本文详细介绍了RustDesk网页端远程控制的实战应用,包括其核心优势、配置流程及安全加固方案。通过Web Client替代传统客户端,用户可实现跨平台无缝体验和企业级管理效率,特别适合临时协作和移动设备使用。文章还提供了JWT身份验证、LDAP集成等安全配置建议,确保网页端访问的安全性。

weixin_30836759的博客 251

微信商家转账报错“当前使用用户过多,请稍后重新确认收款”解决方案

当前使用用户过多,请稍后重新确认收款”这个错误,其实就是典型的参数误处理导致的假报错。记住一句话就行👇JSAPI 场景下的package参数不要做 UrlEncode。如果你也遇到这个问题,希望这篇文章能帮你少踩一个坑。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 784

关于MYSQL的安装和应用

在当今数字化飞速发展的时代,数据库技术已成为企业和个人不可或缺的一部分。其中,MySQL作为一种开源的关系型数据库管理系统(RDBMS),凭借其卓越的性能、易用性和灵活性,在全球范围内赢得了广泛的认可和应用。无论是大型企业的复杂业务场景,还是个人项目的简单数据存储,MySQL都能提供稳定、高效的数据支持。

TBSGRer5617的博客 772

剪映专业版关键帧完全教程:从原理到实战的动画必修课

关键帧是视频动画的核心原理。视频由连续静止画面(帧)构成,关键帧记录素材属性变化的起始与结束状态,中间过渡帧由软件自动计算生成。剪映专业版中,视频、音频、文本、贴纸等素材均支持关键帧动画,可调节位置、缩放、旋转、不透明度、音量等参数。操作为:在起始位置点击参数旁菱形按钮添加关键帧,移动播放头后调整参数,系统自动生成第二个关键帧。多属性可独立控制并叠加,实现放大同时淡出等复合效果。通过设定变化起点与终点,关键帧能让静止元素产生移动、缩放、淡入淡出等丰富动态,是视频剪辑从基础拼接进阶创意表达的核心技能。掌握关键

深耕计算机专业知识与技术。 2086

Mysql应用层面的优化

本书若不讲解一章关于连接到MySQL的应用程序优化的内容,那就不能算完整,因为人们常常把一些性能方面的问题都归咎到MySQL身上。书里面我们更多地是讲到MySQL的优化,但是,我们不想让你错过这个更大的图景。一个糟糕的应用设计会使你无论怎么优化MySQL也弥补不了它带来的损失。实际上,有时候对于这类问题的答案是把它们从MySQL上脱离开来,让应用自己或其他工具来做这些事情,这样或许会有较好的性能表

qingflyer的专栏 2627

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mysql在web应用程序_MySQL和JSP的Web应用程序

MySQL和JSP的Web应用程序 MySQL 和 JSP 的 Web 应用程序JSP 开发人员构建 Web 应用程序时遇到需要强大的数据库连接的特殊问题。MySQL 和 JSP 的 Web 应用程序解决了构建数据驱动的应用程序 JavaServer 页面上的发展模式为基础的挑战。 MySQL 和 JSP 的 Web 应用程序开始一个对 JSP数据库开发 - JavaServer 页面,JDBC ...

weixin_39543758的博客 436

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MySQL技术深度解析与实战应用

数据库(DataBase,DB)是存储数据的仓库,是软件系统中的重要组成部分,通常安装在操作系统上(如Windows、Linux等)。数据库管理系统(DataBaseDBMS)则是用于创建、维护、管理和查询数据库的软件系统。MySQL是一种开源的关系型数据库管理系统,通过表和表之间、行和列之间的关系来存储数据。通过本文的详细解析和实战案例,相信读者已经对MySQL的配置与使用有了深入的了解。MySQL作为关系型数据库管理系统中的佼佼者,在WEB应用中发挥着不可替代的作用。

运维人生 1477

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mysql基础应用

MySQL原生的Online DDL还是有很多限制的,还是会遇到data meta lock的问题等诸多不便,通过pt-osc在线执行DDL。-> gender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别',`gender` enum('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别',`age` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '年龄',

dyf040508的博客 1030

MySQL视图的应用

MySQL视图的应用 视图也称虚表,包括执行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。 实例258:创建视图 实例说明 为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。运行本实例,如图9.6所示,分别在图中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密...

乐在其中/Leo在其中 297

MySQL高级-MySQL应用优化

前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 1 使用连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立数据库连接池,以提高访问的性能。 如果我们不用数据库连接池,那么我们每次操作数据库都需要获取连接,数据库操作完毕之后需要关闭连接,这样我们就需要频繁的开启和关闭连接,这样,就比较耗费资源。 建立数据库连接池之后,我们获取数据库连接的时候就

Java硬件工程师的博客 3203

MySql在哪些应用场景下表现优异

MySQL是一款领先的开源关系型数据库管理系统,它在多种场景下都表现出色。

专业深耕,技术前沿 1371

在kubernetes集群中部署SpringBoot应用和MySQL

环境准备: 需要k8s集群和本地仓库,如果你还没有搭建,建议参考我上面两篇文章 Kubernetes集群搭建详细指南、 为kubernetes创建本地镜像仓库

mryang125的博客 1万+

便签——MySQL应用

便签是我们学习和生活中经常用到的小工具,这个便签项目是对MySQL知识的简单应用 1、功能分析 1.1 基本功能 便签 创建便签 修改便签 删除便签 便签组 创建便签组 删除便签组 修改便签组 检索 便签时间搜索 变迁内容搜索 便签名称搜索 便签组名搜索 1.2 扩展功能 便签背景色 便签提醒 便签私密 便签备份 全部备份 便签...

weixin_44787544的博客 256

10. MySql高级之应用优化

文章目录MySql高级之应用优化1. 连接池2. 减少对MySQL的访问2.1 避免对数据进行重复检索2.2 增加cache层3. 负载均衡3.1 利用MySQL复制分流查询3.2 采用分布式数据库架构☆ MySql高级之应用优化 前面我们学习了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 1. 连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立数据库连

weixin_45267102的博客 390

mysql的应用概述_MySQL视图的应用 概述

视图也称虚表,包括执行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。实例258:创建视图实例说明为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。运行本实例,如图9.6所示,分别在图中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密码,则给出错误提示,反之如果输入的用...

weixin_31689651的博客 105

【MySQL基础】MySQL事务详解:原理、特性与实战应用

【MySQL基础】事务处理相关知识点全面讲解!!

2301_80220607的博客 1万+

如何编写高效的MySQL应用

如何编写高效的MySQL应用作 者: 晏子编译借助诸如Apach、Perl、PHP和Python等工具,构建一个MySQL应用时很容易的。然而确保它们运行快速,则需要一点洞察力。本文就是你需要知道的东西。 MySQL对于成为一个...

cizn2013的博客 147
上一篇: Oracle 应用总结
下一篇: Redis应用介绍
romaticjun2011
博客等级 码龄15年 6粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值