自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 问答 (14)
  • 收藏
  • 关注

原创 MySQL中使用索引优化

索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。创建了单一的三个索引,最后面where全使用了但explain显示只用了index_name。SQL所需要返回的所有列数据均在一棵索引树上,避免访问表的数据行,效率不错。该情况下,索引生效,执行效率高。该情况下,索引生效,执行效率高。该情况下,索引生效,执行效率高。explain中的extra列。但是再加有个password。

2023-02-19 15:18:34 593 1

原创 show profile和trance分析SQL

Mysql从5.0.37版本开始增加了对show profiles和show profile语句的支持。show profiles能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。。通过have_profiling参数,能够看到当前MySQL是否支持profile :MySQL5.6提供了对sQL的跟踪trace,通过trace文件能够进一步了解为什么优化器选择A计划,而不是选择B计划

2023-02-18 21:15:16 887

原创 MySQL的优化

在应用的的开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐显露出性能问题,对生产的影响也越来越大,此时这些有问题的SQL语句就成为整个系统性能的瓶颈,因此我们必须要对它们进行优化.

2023-02-18 15:18:20 1943

原创 MySQL的日志详解

在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件。MySQL也不例外。二进制日志(BINLOG)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制,就是通过该binlog实现的。二进制日志,MySQl8.0默认已经开启,低版本的MySQL的需要通过配置文件开启,并配置MySQL日志的格式。

2023-02-17 21:08:01 1183

原创 MySQL的锁机制详解

锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2023-02-17 13:14:40 337

原创 MySQL中的事务详解

在MySQL中的事务(Transaction)是由存储引擎实现的,在MySQL中,只有InnoDB存储引擎才支持事务。事务处理可以用来维护数据库的完整性,保证成批的sQL语句要么全部执行,要么全部不执行。事务用来管理DDL、DML、DCL操作,比如insert,update,delete语句,默认是自动提交的。比如:在银行转账时,必须保证转账绝对安全,这时需要事务参与-- id为1的账户转账给id为2的账户思考。

2023-02-16 21:03:57 619

原创 MySQL的存储引擎

- 查看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎)-- 修改数据库引擎。

2023-02-16 14:43:08 404 1

原创 MySQL中索引详解

索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。索引类似一本书的目录,比如要查找'student'这个单词,可以先找到s开头的页然后向后查找,这个就类似索引。单列索引:一个索引只包含单个列,但一个表中可以有多个单列索引;

2023-02-16 10:44:18 581

原创 MySQL的触发器

触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动条用。在MySQL中,只有执行insert,delete,update操作时才能触发触发器的执行触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。

2023-02-15 15:24:09 1225

原创 SQL中的游标、异常处理、存储函数及总结

目录一.游标格式操作 演示二.异常处理—handler句柄格式 演示 三.存储函数格式 参数说明演示四.存储过程总结 游标(cursor)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH和 CLOSE. 运行输出的结果是但是 我们发现符合要求的有多个值,这是因为游标是一条条往下执行的所以我们可以用一个循环 结果会报错No data - zero rows fetched, selected, or process

2023-02-15 11:28:09 714

原创 MySQL存储过程的传参和流程控制

in表示传入的参数,可以传入数值或者变量,即使传入变量,并不会更改变量的值,可以内部更改,仅仅作用在函数范围内。out表示从存储过程内部传值给调用者。inout表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)。IF语句包含多个条件判断,根据结果为TRUE、FALSE执行语句,与编程语言中的if、else if、else语法类似,其语法格式如下:循环分类whilerepeatloop

2023-02-09 19:42:10 1853 1

原创 MySQL的存储过程和变量定义

MySQL 5.0版本开始支持存储过程。简单的说,存储过程就是一组saL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;存储过就是数据库SQL语言层面的代码封装与重用。格式用户自定义,在begin/end块中有效MySQL中还可以使用SELECT..IlNTO语句为变量赋值。其基本语法如下:-- 用set赋值beginend $$delimiter;-- 用select into 赋值beginend $$delimiter;

2023-02-08 15:37:30 814 1

原创 MySQL的视图

视图((view)是一个虚拟表,非真实存在,其本质是根据sQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。

2023-02-07 11:09:15 640 2

原创 MySQL的函数

在MySQL中,函数非常多,主要可以分为以下几类:聚合函数数学函数字符串函数日期函数控制流函数窗口函数在MysQL中,聚合函数主要由: count,sum,min,max,avg,这些聚合函数我们之前都用过,不再重复。这里我们学习另外一个函数:group_concat(),该函数用户实现行的合并group_concat()函数首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果。MySQL 8.0新增窗口函数.,窗口函数又被称为开窗函数,

2023-02-04 11:01:20 1040 2

原创 MySQL多表操作案例练习

MySQL多表操作案例练习1、返回拥有员工的部门名、部门号。2、工资水平多于smith的员工信息。3、返回员工和所属经理的姓名。4、返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。5、返回员工姓名及其所在的部门名称。6、返回从事clerk工作的员工姓名和所在部门名称。7、返回部门号及其本部门的最低工资。8、返回销售部(sales)所有员工的姓名。9、返回工资水平多于平均工资的员工。10、返回与scott从事相同工作的员工。11、返回工资高于30部门所有员工工资水平的员工信

2023-02-02 17:09:36 916 1

原创 MySQL中的多表联合查询

多表查询就是同时查询两个或两个以上的表,因为有的时候用户在查看数据的时候,需要显示的数据来自多张表.多表查询有以下分类:交叉连接查询[产生笛卡尔积,了解]内连接查询(使用的关键字inner join -- inner可以省略)外连接查询(使用的关键字outer join -louter可以省略)子查询表自关联

2023-01-31 11:11:33 2361 1

原创 MySQL多表操作的外键约束

MySQL多表之间的关系可以概括为:一对一、一对多/多对一关系,多对多。MySQL外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

2023-01-30 11:44:05 2144

原创 MySQL中的正则表达式

正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

2023-01-30 10:49:09 648

原创 MySQL基本查询案例练习

创建一个学生表,查询表中所有学生的信息。 -- 查询表中所有学生的姓名和对应的英语成绩。-- 过滤表中重复数据。-- 统计每个学生的总分。-- 在所有学生总分数上加10分特长分。-- 使用别名表示学生分数。-- 查询英语成绩大于等于90分的同学-- 查询总分大于250分的所有同学-- 在所有学生总分数上加10分特长分。-- 查询英语分数在80—90之间的同学。-- 查询英语分数不在80-90之间的同学。-- 查询数学分数为89,90,

2023-01-28 16:53:20 1445

原创 MySQL中的运算符

数据库中的表结构确立后,表中的数据代表的意义就已经确定。通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据。例如,学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。MySQL支持4种运算符。算术运算符比较运算符逻辑运算符位运算符

2023-01-28 11:08:46 490

原创 MySQL约束详解

目录概念作用分类MySQL约束——主键约束概念操作操作——添加单列主键操作——添加多列主键(联合主键)操作——删除主键约束 MySQL约束-自增长约束(auto_increment)概念语法操作 特点指定自增字段初始值 delete和truncate在删除后自增列的变化MySQL约束-非空约束(not null)概念语法 添加非空约束—方式1 添加非空约束—方式2 删除非空约束MySQL约束-唯一约束(unique)概念语法​编辑 添加唯一约束—方式1 添加唯一约束—方式2删除唯一约束 MySQL约束-

2023-01-27 14:48:50 1844

原创 SQL用法详解补充

本文是对上次“SQL用法详解”的一些补充,一些基本操作可以点击链接查看目录 一.对表结构的常用操作查看表结构格式修改表结构格式1.修改列名和类型 2.修改添加列 3.修改表删除列 4.修改表名 5.数据删除二.总结 三.实例解决 完整代码 3.查看表结构例子 语法结构例子语法格式例子语法格式例子语法格式例子注意:delete和truncate原理不同,delete只删除内容,而truncate类似于drop table,可以理解为是将整个表删除,然后再创建该表; 1.创建表employee,字段如下:i

2023-01-27 11:07:11 795

原创 Python中的递归及案例演示

递归在编程中是一种非常重要的算法递归:即方法(函数)自己调用自己的一种特殊编程写法如:函数调用自己,即称之为递归调用。1.什么是递归在满足条件的情况下,函数自己调用自己的一种特殊编程技巧2.递归需要注意什么?注意退出的条件,否则容易变成无限递归注意返回值的传递,确保从最内层,层层传递到最外层3.os模块的3个方法os.listdir,列出指定目录下的内容os.path.isdir,判断给定路径是否是文件夹,是返回True,否返回False。

2023-01-18 12:53:01 925 1

原创 正则表达式和re模块

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。简单来说,正则表达式就是使用:字符串定义规则,并通过规则去验证字符串是否匹配。比如,验证一个字符串是否是符合条件的电子邮箱地址,只需要配置好正则规则,即可匹配任意邮箱。比如通过正则规则:(^[\w-]+(L.[\w-]+)*@[ \w-]+(\.[\w-]+)+$))即可匹配一个字符串是否是标准邮箱格式。

2023-01-18 11:22:41 1809

原创 python中的socket网络编程

socket(简称套接字)是进程之间通信一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间想要进行网络通信需要socket。Socket负责进程之间的网络数据传输,好比数据的搬运工。客户端和服务端2个进程之间通过Socket进行相互通讯,就必须有服务端和客户端Socket服务端:等待其它进程的连接、可接受发来的消息、可以回复消息Socket客户端:主动连接服务端、可以发送消息、可以接收回复。

2023-01-17 17:03:50 919

原创 进程、线程及python的多线程编程

现代操作系统比如Mac OS X,UNIX, Linux, Windows等,都是支持“多任务”的操作系统。进程:就是一个程序,运行在系统之上,那么便称之这个程序为一个运行进程,并分配进程ID方便系统管理。线程:线程是归属于进程的,一个进程可以开启多个线程,执行不同的工作,是进程的实际工作最小单位。进程就好比一家公司,是操作系统对程序进行运行管理的单位线程就好比公司的员工,进程可以有多个线程(员工),是进程实际的工作者操作系统中可以运行多个进程,即多任务运行。

2023-01-17 11:47:53 735 1

原创 python中的设计模式:单例模式、工厂模式

1.什么是设计模式设计模式就是一种编程套路。使用特定的套路得到特定的效果2.什么是单例设计模式单例模式就是对一个类,只获取其唯一的类实例对象,持续复用它.节省内存节省创建对象的开销3.什么是工厂模式将对象的创建由使用原生类本身创建转换到由特定的工厂方法来创建4.好处大批量创建对象的时候有统一的入口,易于代码维护当发生修改,仅修改工厂类的创建方法即可符合现实世界的模式,即由工厂来制作产品(对象)

2023-01-16 13:28:42 1037 1

原创 python中的闭包和装饰器

在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。​python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。

2023-01-16 12:35:30 836

原创 PySpark中RDD的数据输出详解

.Spark的编程流程就是:将数据加载为RDD(数据输入)对RDD进行计算(数据计算)将RD转换为Python对象(数据输出).数据输出的方法collect:将RDD内容转换为listreduce:RDD内容进行自定义聚合take:取出RDD的前N个元素组成listcount统计RDD元素个数数据输出可用的方法是很多的,这里只是简单介绍RDD输出到文件的方法rdd.saveAsTextFile(路径)输出的结果是一个文件夹有几个分区就输出多少个结果文件2.如何修改RDSparkConf对象设置conf.s

2023-01-14 15:15:17 2610 2

原创 PySpark数据计算中常用的成员方法(算子)

PySpark的数据计算,都是基于RDD对象来进行的,那么如何进行呢?自然是依赖,RDD对象内置丰富的:成员方法(算子)介绍几种常见的成员方法(算子)如下:map方法flatmap方法reduceByKey方法filter方法distinct方法sortBy方法1. map算子(成员方法)接受一个处理函数,可用lambda表达式快速编写对RDD内的元素逐个处理,并返回一个新的RDD2.链式调用对于返回值是新RDD的算子,可以通过链式调用的方式多次调用算子。

2023-01-13 16:23:00 612

原创 PySpark和RDD对象详解

定义:Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据。

2023-01-11 14:22:12 605 1

原创 python和MySQL的基础使用和数据的插入导出

在Python中,使用第三方库:pymysql来完成对MySQL数据库的操作。pymysql库在执行对数据库有修改操作的行为时,是需要通过链接对象的commit成员方法来进行确认的。pymysql在执行数据插入或其它产生数据更改的SQL语句时,默认是需要提交更改的,即,需要通过代码“确认”这种更改行为。Connection(主机,端口,账户,密码)即可得到链接对象·链接对象.close()关闭和MySQL数据库的连接。如果不想手动commit确认,可以在构建链接对象的时候,设置自动commit的属性。

2023-01-11 11:23:46 1419

原创 SQL用法详解

1.SQL语言是什么?有什么作用?SQL:结构化查询语言,用于操作数据库,通用于绝大多数的数据库软件2.SQL的特征大小写不敏感需以;号结尾支持单行、多行注释3操作数据库的SQL语言基于功能可以划分为4类:数据定义:DDL ( Data Definition Language):库的创建删除、表的创建删除等数据操纵:DML ( Data Manipulation Language):新增数据、删除数据、惨改数据等。

2023-01-06 14:32:08 1509 5

原创 数据库和SQL介绍

SQL全称: Structured Query Language,结构化查询语言,用于访问和处理数据库的标准的计算机语言。SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。经过多年发展,SQL以成为数据库领域统一的数据操作标准语言,可以说几乎市面上所有的数据库系统都支持使用SQL语言来操作简单来说,SQL语言就是操作数据库的专用工具。

2023-01-06 11:01:22 1417 3

原创 python面向对象做数据分析实例

某公司,有2份数据文件,现需要对其进行分析处理,计算每日的销售额并以柱状图表的形式进行展示。

2023-01-03 11:19:57 672 1

原创 python中的多态和抽象类接口

如,定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态。包含抽象方法的类,称之为抽象类。多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。细心的同学可能发现了,父类Animal的speak方法,是空实现。也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法。抽象类就像一个标准,提出标准之后,就由后面的继承类去具体实现。多态指的是,同一个行为,使用不同的对象获得不同的状态。同样的行为(函数),传入不同的对象得到不同的状态。

2023-01-02 10:47:02 618 1

原创 python中的类型注解

在编写函数((方法),使用形参data的时候,工具没有任何提示·在调用函数(方法),传入参数的时候,工具无法提示参数类型这些都是因为,我们在定义函数(方法)的时候,没有给形参进行注解。Python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具类型注解:在代码中涉及数据交互的地方,提供数据类型的注解(显式的说明)。如图,就算不写注解,也明确的知晓变量的类型,一般,无法直接看出变量类型之时会添加变量的类型注解。除了使用变量:类型,这种语法做注解外,也可以在注释中进行类型注解。

2023-01-01 15:46:11 3438 5

原创 python中的封装和继承

子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么可以进行复写。即:先继承的保留,后继承的被覆盖。pass是占位语句,用来保证函数(方法)或类定义的完整性,表示无内容,空的意思。现实事物有不公开的属性和行为,那么作为现实事物在程序中映射的类,也应该支持。一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员。多继承中,如果父类有同名方法或属性,先继承的优先级高于后继承。继承就是一个类,继承另外一个类的成员变量和成员方法。继承就是一个类,继承另外一个类的成员变量和成员方法。

2022-12-31 17:45:45 785

原创 python类中常见内置方法

上图中,输出的是FALSE,这是因为如果没有实现eq这个魔术方法,那么等等符号它就默认比较内存地址。内存地址没有多大作用,我们可以通过_ _str_ _方法,控制类转换为字符串的行为。上文提到的_ _init_ _构造方法,是Python类内置的方法之一。这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称之为:魔术方法。当类对象需要被转换为字符串之时,会输出如上结果(内存地址)我们学习几个常见的即可。

2022-12-31 16:26:55 776

原创 python中类的使用详解

可以使用类去封装属性,并基于类创建出一个个的对象来使用。class是关键字,表示要定义类了类的属性,即定义在类中的变量(成员变量)类的行为,即定义在类中的函数(成员方法)创建类对象的语法:对象=类名称()在类中定义成员方法和定义函数基本一致,但仍有细微区别:def 方法名(self,形参1,......,形参N):方法体self关键字self关键字是成员方法定义的时候,必须填写的。它用来表示类对象自身的意思当我们使用类对象调用方法的是,self会自动被python传入。

2022-12-31 14:16:18 4016 1

空空如也

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

TA关注的人

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