MySQL高级部分理论知识细讲

MySQL数据库 --- 高级篇 大家可能没有听说过存储引擎,但是一定听过引擎这个词,引擎就是发动机,是一个机器的核心组件。比如,对于舰载机、直升机、火箭来说,他们都有各自的引擎,是他们最为核心的组件。而我们在选择引擎的时候,需要在合适的场景,选择合适的存储引擎,就像在直升机上,我们不能选择舰载机的引擎一样。而对于存储引擎,也是一样,他是mysql数据库的核心,我们也需要在合适的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。 阅读详情

文章目录

一、数据库分区、分表、分库、分片

1.1 单机数据库的瓶颈

  • 单个表数据量越大,读写锁,插入操作重新建立索引效率越低。
  • 单个库数据量太大(一个库数据量到1T - 2T就是极限)
  • 单个数据库服务器压力过大
  • 读写速度遇到瓶颈(并发量几百)

1.2 分区

数据库分区是一种物理数据库的设计技术,它的目的是为了在特定的 SQL操作中减少数据读写的总量以缩减响应是间。

分区并不是生成新的数据库表,而是将表的数据均匀分摊到不同的硬盘,系统或不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据分摊到不同的地方,提高数据检索的效率,降低数据库频繁 IO压力值,分区的优点如下:

  1. 相对于单个文件系统或硬盘,分区可以存储更多的数据。
  2. 数据管理比较方便,如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可。
  3. 精准定位分区查询数据,不需要全表扫描查询,大大提高检索效率。
  4. 可跨多个分区磁盘查询,来提高查询的吞吐量。
  5. 在涉及聚合函数时,很容易进行数据的合并。

1.2.1 什么时候考虑使用分区?

  • 一张表的查询速度已经慢到影响使用的时候。
  • sql经过优化
  • 数据量大
  • 表中的数据是分段的
  • 对数据的操作往往只涉及一部分数据,而不是所有的数据

1.2.2 水平分区

这种形式分区是对表的行进行分区,通过这种的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分体或集体分割。所有在表中定义的列在每个数据集中都能找到,所以表的特性得以保持。

举例:一个包含十年发票记录的表可以被分区为10个不同的分区,每个分区包含的是其中一年的记录。

1.2.3 垂直分区

这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行。

举例:一个包含了大 text和 blob列的表,这些 text和 blod列又不经常被访问,这时候就要把这些不经常使用的 text和 blob了划分到另一个分区,在保证它们数据关联性的同时还能提高访问速度。

1.2.4 分区实现的方式

mysql5开始支持分区功能

创建表:

create table sales(
	id int auto increment,
	amount double not null,
	order_day datetime not null,
	primary key(id,order_day)
) engine=Innodb

设置分区:

partition by range(year(order_day))(
	partition p_2010 values less than (2000),
	partition p_2011 values less than (2011),
	partition p_2012 values less than (2012),
	partition p_2012 values less than maxvalue
);

1.3 分表

1.3.1 什么时候考虑分表?

  • 一张表的查询速度已经慢到影响使用的时候
  • sql经过优化
  • 数据量大
  • 当频繁插入或者联合查询时,速度变慢

1.3.2 分表解决的问题

分表后,单表的并发能力提高了,磁盘的 IO性能也提供了,写操作效率也提高了。

  • 查询一次的时间短了
  • 数据分布在不同的文件,磁盘 I/O性能提高
  • 读写锁影响的数据量变小
  • 插入数据库需要重新建立索引的数据减少

1.3.3 分表实现方式

要业务系统配合迁移升级,工作量较大

常用分区分表的规则策略

  • Range(范围)
  • Hash(哈希)
  • 按照时间拆分
  • Hash之后按照分表个数取模
  • 在认证库中保存数据库配置,就是建立一个 DB,这个 DB单独保存 user_id到 DB的映射关系

1.4 分库

1.4.1 什么时候考虑分库?

  • 单台 DB的存储空间不够
  • 随着查询量的增加单台数据库服务器已经没办法支撑

1.4.2 分库解决的问题

其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。

1.4.3 分库实现的方式

垂直拆分

把系统中不存在关联关系或者需要 join的表可以放在不同的数据库不同的服务器中。 按照业务垂直拆分。比如:可以按照业务分为资金、会员、订单三个数据库。

需要解决的问题:跨数据库的事务、 join查询等问题。

水平拆分

例如,大部分的站点。数据都是和用户有关,那么可以根据用户,将数据按照用户水平拆分。

按照规则拆分,一般水平库是在垂直分库之后的。比如每天处理的订单数量是海量的,可以按照一定的规则水平划分。

需要解决的问题:数据路由、组装。

读写分离

对于时效性不高的数据,可以通过读写分离缓解数据库压力。

需要解决的问题:在业务上区分哪些业务是允许一定时间延迟的,以及数据同步问题。

1.5 分区、分表、分库的对比

分区就是把一张表的数据分成N个区块,在逻辑上看最终只是一个表,但底层是由N个物理区块组成的。分表就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表名,然后操作它。分库一旦分表,一个数据库中的表会越来越多

优先级:垂直分库–>水平分库–>读写分离

1.6 拆分后面临的新问题

  • 事务的支持,分库分表,就变成了分布式事务
  • join时跨库,跨表的问题
  • 分库分表,读写分离使用了分布式,分布式为了保证强一致性,必然带来延迟,导致性能降低,系统的负责度降低。

解决方案:

对于不同的方式之间没有严格的界限,特点不同,侧重点不同。需要根据实际情况,结合每种方式的特点来进行处理。选用第三方的数据库中间件( Atlas, Mycat, TDDL, DRDS),同时业务系统需要配合数据存储的升级。

总结:优先考虑分区。当分区不能满足需求时,开始考虑分表,合理的分表对效率的提升会优于分区。

1.7 京东评论案例

现状

  • 商品的评论数量:数十亿条
  • 每天的服务调用:数十亿次
  • 每年成倍增长

整体的数据存储:基础数据存储,文本存储

基础数据存储

MySQL:只存储非文本的基础信息。包括:评论状态,用户,时间等基础数据。以及图片,标签,点赞等附加信息。数据组织形式(不同的数据又可选择不同的库表拆分方案):

  • 评论基础数据按用户 ID进行拆库并拆表
  • 图片及标签处于同一数据库下,根据商品编号分别进行拆表
  • 其它的扩展信息数据,因数据量不大、访问量不高,处理于同一库下且不做分表即可

文本存储

文本存储(评论的内容)使用了 mongodb、 hbase

  • 选择 nosql而非 mysql。
  • 减轻了 mysql存储压力,释放 msyql,庞大的存储也有了可靠的保障。
  • nosql的高性能读写大大提升了系统的吞吐量并降低了延迟。

1.8 数据分片

在分布式存储系统中,数据需要分散在多台设备上,数据分片( Sharding)就是用来确定数据在多台存储设备上分布的技术,数据分片要达到三个目的:

  1. 分布均匀,即每台设备上的数据量要尽可能相近
  2. 负载均衡,即每台设备上的请求量要尽可能相近
  3. 扩缩容时产生的数据迁移尽可能少

数据分片方法

  • 划分号段
  • 取模
  • 检索表
  • 一致性哈希算法( Consistent Hashing)是在1997年由 MIT提出的一种分布式哈希 (DHT)实现算法,设计目标是为了解决因特网的热点(Hot Spot)问题。一致性哈希的算法简单而巧妙,很容易做到数据均分布,其单调性也保证了扩缩容的数据迁移是比较少的。

虚拟服务器

为了让系统有更好的扩展性,这里提出存储层 VServer(虚拟服务器)的概念,一个 VServer是一个逻辑上的存储服务器,是分布式存储系统的一个存储单元,一台物理设备上可以部署多个 VServer,一个 VServer支持一个写进程和多个读进程。

通过 VServer的方式,会有下面一些好处:

  1. 提高单机性能。为了不引入复杂的锁机制,采用了单写进程的设计,如果单机只有一个写进程,写并发能力会受到限制,通过 VServer方式把单机上的存储资源(内存、硬盘)划分为多个存储单元,这样就支持多个写进程同时工作,大大提升单机写并发能力。
  2. 部署扩展性更好。 VServer的方式在部署上非常灵活,可以根据单机的资源情况来确定 VServer的数量,针对不同的机型配置不同的 VServer数量,这样不同的机型都能充分利用机器上的资源,即使在一个系统中使用多种机型,也能做到机器的负载比较均衡。

二、事务的ACID和隔离级别

  • 原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作失败都会导致整个事务的失败
  • 一致性(Consistent):事务结束后系统的状态是一致的
  • 隔离性(Isolated):并发操作的事务彼此看不到对方的中间状态
  • 持久性(Durable):事务完成后所做的改动都会被持久化

数据库事务并发导致的问题

  • 解读: 事务 A读到了事务 B未提交的数据
  • 可重复读:事务 A查询得到一行记录 row1,事务B提交修改后,事务 A第二次查询得到 row1,但列内容发生了改变,侧重于次数
  • 幻读:事务 A第一次查询得到一行记录 row1,事务 B提交修改后,事务 A第二次查询得到两行记录 row1和 row2,侧重于 insert

MySQL数据库给我们提供的4种隔离级别

  • 串行化(Serializable):事务A多次从一张表中读取到相同的行,禁止其他事务对这张表进行CRUD操作
  • 不可重复读(Repeatable read):事务A可以读取到相同的值,禁止其他事务对字段进行更改
  • 读已提交(Read committed):事务A只能读取已提交的数据
  • 读未提交:(Read uncomitted): 事务A可以读取到未提交的数据

脏读可重复读幻读串行化√√√不可重复读√√×读已提交√××读未提交×××

Oracle提供3种隔离级别

读已提交,串行化,只读模式:只读事务只能看到事务执行前就已经提交的数据,且事务中不能执行 insert、 update及 delete语句。

三、MySQL锁机制

3.1 锁的分类

  • 从对数据操作的类型(读/写)分读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
  • *对数据操作的粒度分

为了尽可能数据库的并发度,每次锁定的数据范围越小越好,理论上每次只锁定当前操作的数据的方案会得到最大的并发度,但是管理锁是很耗资源的事情(涉及获取,检查,释放锁等操作),因此数据库系统需要在高并发响应和系统性能两方面进行平衡,这样就产生了"锁粒度( Lock granularity)"的概率。

一种提高共享资源并发性的方式是让锁定对象更有选择性。尽量只锁定需要修改的部分数据,而不是所有的资源。更理想的方式是,只对会修改的数据片进行精确的锁定。任何时候,在给定的资源上,锁定的数据量越少,则系统的并发度越高,只要相互之间不发生冲突即可。

  • 表锁
  • *行锁

3.2 表锁

特点:偏向 MyISAM存储引擎,开销小,加锁快;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

案例1【加读锁】:

[session1]

lock table user read;

	这里只能执行查询当前表,不能查询其他表,插入或更新当前表都会提示错误

unlock tables;

[session2]

在session1锁定表后,session2能查询或更新未锁定的表,能查询锁定表,插入或者更新锁定表会一直等待锁被释放。

案例1【加写锁】:

[session1]

lock tables user write;

	这里可以对锁定表做查询、更新、插入操作

unlock tables;

[session2]

在session1锁定表后,查询、更新、插入操作均需要等到锁被释放。

结论:

  1. 对 MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会堵塞同一表的写请求。只要当读锁释放后,才会执行其他进程的写操作。
  2. 对 MyISAM表的写操作(加写锁),会阻塞其他进程的对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

查看哪些表被加锁: show open tables;

分析表锁定: show status like 'table%';

<br> Table_locks_immediate:产生表级锁定的次数,表示可以立即获取锁的查询次数,每立即获取锁值加1 ;<br> Table_locks_waited:出现表级锁定争用而发生等待的次数(不能立即获取锁的次数,每等待一次锁值加1),此值高则说明存在着较严重的表级锁争用情况;

Myisam的读写锁调度是读优先,这也是myisam不适合做写为主表的引擎。因为写锁后,其他线程不能做任何操作,大量的更新会使查询很难得到锁,从而造成永远阻塞

3.3 行锁

特点:

  1. 偏向 InnoDB存储引擎,开销大,加锁慢;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
  2. InnoDB和 MyISAM的最大不同有两点:一是支持事务;二是采用了行级锁。

案例【加行锁】

[session1]

set autocommit=0;

	这里可以对锁定表做更新操作

commit;

[session2]

在session2锁定表后不commit时,这里对锁定表进行update操作,会等待锁释放。

无索引行锁升级为表锁

当某个索引列没有正常使用,如赋错误的类型的值,会导致行锁变表锁。

间隙锁危害

间隙锁:当我们用范围条件而不是相等条件检索数据,并请求共享或拍他锁时, InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做"间隙( GAP)", InnoDB也会对这个"间隙"进行加锁,这种锁机制就是所谓的间隙锁( Next-Key)。

危害:当锁定一个范围键值之后,即使某些不存在的键值也会被无故的锁定,而造成在锁定的时候无法插入锁定键值范围内的任何数据,在某些场景下这可能会对性能造成很大的危害。

【面试题】 如何锁定一行

select * from user for update;

结论:

Innodb存储引擎由于实现了行级锁定,虽然在锁定机制的实现方面所带来的的性能损耗可能比表级锁定会要更高一些,但是整体并发处理能力方面要远远优于 MyISAM的表级锁定。当系统并发量较高的时候, InnoDB的整体性能和 MyISAM相比就有比较明显的优势了。

但是 Innodb的行级锁定同样也有脆弱的一面,当我们使用不当的时候,可能会让 Innodb的整体性能表现不仅不能比 MyISAM高,甚至可能会更差。

分析行锁定:

通过检查 InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况

命令: mysql> show status like 'innodb_row_lock%';

<br>
Innodb_row_lock_current_waits:当前正在等待锁定的数量;<br> Innodb_row_lock_time:从系统启动到现在锁定总时间长度;<br> Innodb_row_lock_time_avg:每次等待所花平均时间;<br> Innodb_row_lock_time_max:从系统启动到现在等待最长的一次所花的时间;<br> Innodb_row_lock_waits:系统启动后到现在总共等待的次数;

优化建议

  • 尽可能让所有数据检索都通过索引来完成,避免无索引行锁升级为表锁。
  • 合理设计索引,尽量缩小锁的范围
  • 尽可能较少检索条件,避免间隙锁
  • 尽量控制事务大小,减少锁定资源量和时间长度
  • 尽可能低级别事务隔离

3.4 页锁

开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

四、MySQL实战问题

4.1 重复数据问题


select p1.Email from person p1 where p1.Email in (select p2.Email from person p2 where p1.Id!=p2.Id);

[优]SELECT email FROM `person` group by email HAVING count(email)>1;

[拓展]删除重复数据
[思路]根据重复数据进行分组,然后查出最小的id,删除其他之外的id行,这里得创建一个临时表,
在mysql中,不能在一条Sql语句中,即查询这些数据,同时修改这些数据
DELETE from person  where id not in( select temp.id from (SELECT min(id) id FROM person group by email)as temp);
注意:这里在mysql5.7以上版本会报错,因为不支持select那些group by和聚合函数之外的字段

4.2 索引创建和查看

创建: create index idx_a_b on table(col_a,col_b);

查看: show index from table;

4.3 where 1=1和where 1=0的意义

where 1=1用于拼接多条件语句时,这样就不用管条件是否存在,拼 where还是拼 and。

where1=0不返回数据,仅返回结构,用于快速建表。

MySQL高级(三)MySQL的体系结构和存储引擎 MySQL的体系结构和存储引擎1 MySQL的体系结构2 存储引擎2.1 存储引擎概述2.2 存储引擎特性2.2.1 InnoDB 引擎 1 MySQL的体系结构 1) 连接层   最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作 阅读详情

相关推荐

mysql高级知识点

外键约束用于在一个表中创建对另一个表中数据的引用,从而确保关联表中的数据与主表中的数据保持一致。外键约束可以限制插入、更新和删除操作,防止关联表中出现无效的引用或不一致的数据。外键约束可以在创建表时定义,也可以在已有的表上添加或删除。创建表时定义外键约束的示例: 下面是一个在创建表时定义外键约束的示例,假设我们有两个表orders和customers,其中orders表中有一个字段,用于关联customers表中的id字段。在上面的示例中,我们在创建orders表时定义了一个外键约束,将。

_abab的专栏 1217

MYSQL 双表联合查询,通过A表数组查询B表对应的数据

MYSQL 双表联合查询,通过A表数组查询B表对应的数据

weixin_44498832的博客 5176

MySQL高级部分学习笔记总结

MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。索引是数据库中用来提高性能的最常用的工具。​ 视图(View)是一种虚拟存在的表。

编程小鹏的博客 1610

mysql根据一张表的id查询另一张表的内容_MySQL高级部分理论知识细讲

文章目录一、数据库分区、分表、分库、分片YesOk ,大家好 ,我是小刘,许久不见,甚是想念 ,小刘今天来带大家学习 分库分表地基础知识1.1 单机数据库的瓶颈单个表数据量越大,读写锁,插入操作重新建立索引效率越低。单个库数据量太大(一个库数据量到1T - 2T就是极限)单个数据库服务器压力过大读写速度遇到瓶颈(并发量几百)1.2 分区数据库分区是一种物理数据库的设计技术,它的目的是为了在特定的 ...

weixin_39822147的博客 4084

MySQL:高级部分

(一条语句)是一个执行体,现在可以把多条语句用'delimiter /标志/'包起来,,用’/标志/‘结束,合并执行。(单向:不可逆,只能通过信息计算出散列值,无法通过散列值反算出信息。: 事务不能互相扰乱,保证数据和事务的相对隔离,一个事务的执行不能被其他事务干扰。:操作前与操作后的状态一致,事务不管做或者没做,数据库都处于一致状态。:事务commit了,事务就完成,数据是持久化储存的,存在磁盘里。设置索引,查找快,但是其他操作(增删改等)效率会变低。用完后,可以再还原,重新设置为’;

Bob516516的博客 1096

详解卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。

qq_25762497的博客 25万+

三篇学会MySQL数据库【高级部分】

今天是万字教程的最后一篇高级部分,本文会讲解视图,存储过程,索引,触发器,事务,安全管理,数据库备份与还原以及性能等知识,全文24000字,干货满满,我还准备了全文思维导图供大家梳理思路或者下载复习使用,快来学习吧!如果觉得还不错,还请点赞,收藏,关注支持我呀,如果发现文章有写错的部分,欢迎在评论区留言⌨️......

很高兴你能看到这里 2761

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

MySQL高级部分

MySQL高级 文章目录MySQL高级MySQL逻辑架构总体概述1.连接层2.服务层2.1 Management Serveices & Utilities: 系统管理和控制工具2.2 SQL Interface: SQL接口2.3 Parser: 解析器2.4 Optimizer: 查询优化器。2.5 Cache和Buffer: 查询缓存。3.引擎层4.存储层MySQL存储引擎1、InnoDB存储引擎2、MyISAM存储引擎3、Archive引擎4、Blackhole引擎5、CSV引擎6、Me

TheAnnoyingDog的博客 1544

S7-1200PLC期末复习题(第七章)

A.0 B.1 C.4 D.-4 A、CV = 0 B、CV = 1 C、CV < 4 D、CV >= 4A、0,0 B、3,0 C、1,1 D、3,1 A、0 B、1 C、先是1,再变为0 D、先是0,再变为1置位输出:常开触点M0.0闭合,Q0.0变为1状态并保存该状态,即使M0.0断开,Q0.0也保持1状态。 复位输出:常开触点M0.1闭合时,Q0.0变为0状态并保持该状态,即使M0.1断开,Q0.0也保持为0状态。 A、1 B、0 C、5 D、10RESET_BF指令需要两个参数,第一个是复位的位数

qq_52251819的博客 4423

开关电源双环控制原理与实战调试指南

开关电源双环控制是一种融合电流内环与电压外环的嵌套反馈架构,其核心原理基于能量路径的分层调节:电流环实现微秒级瞬态响应与过流抑制,电压环保障稳态精度与长期稳定性。该技术显著提升系统抗扰性、动态响应速度及鲁棒性,广泛应用于工业PLC电源、伺服驱动器、服务器电源等中高功率场景。区别于单环控制的滞后缺陷,双环通过带宽分割(电流环≤0.2×开关频率,电压环≤电流环带宽的1/5)和物理延迟建模(光耦延迟、采样延迟、ZOH效应),构建可预测、可测量、可复现的稳定闭环。本文聚焦真实硬件约束下的PI参数整定、斜率补偿设计、

weixin_27252001的博客 305

滚雪球学MySQL[3.1讲]: 高级SQL查询

在上一期的文章中,我们深入探讨了MySQL的基础SQL操作,包括如何创建和删除数据库与表,进行数据的插入、查询、更新与删除操作,以及使用WHEREORDER BY和LIMIT对查询结果进行过滤与排序。这些基础操作构成了我们与数据库交互的根基,使得我们能够在MySQL数据库中存储和检索数据。然而,随着数据规模的增大和业务逻辑的复杂化,简单的SQL操作已不能满足我们的需求。我们常常需要从多个表中提取相关数据,或者在一个查询中计算汇总结果。这时候,高级SQL查询就显得尤为重要。

**My Coding Family** 1576

GOM Correlate拉伸试验后处理操作

本文描述了使用GOM Software 2022对拉伸试样进行后处理的操作,包括设置检测点、引伸计、输出应变数据到表格、输出报告为视频等

qq_45008924的博客 4668

MySQL高级篇

MySQL高级篇

写代码的渣渣苏 2万+

Python爬虫实战:实时爬取东方财富网股票行情

东方财富网实时行情(价格、涨跌幅、成交量等)K线图、分时图、技术指标市盈率、换手率、总市值等指标相比某些收费API,东方财富网页端接口不需要登录、免费、响应快、封装清晰,适合爬虫实践。东方财富网股票数据接口分析实时数据抓取与字段提取数据结构化处理自动化批量抓取多线程加速采集数据可视化展示支持存储为CSV/Excel/数据库。

2201_76125261的博客 1万+

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 486

MySQL高级SQL语句

MySQL高级SQL语句MySQL高级SQL语句函数数学函数聚合函数字符串函数 MySQL高级SQL语句 use kgc; create table location (Region char(20),store_name char(20)); insert into location values ('East','Boston') ; insert into location values ('East','New York'); insert into location values ('west',

weixin_55609814的博客 2万+

三甲医院等级评审八维数据分析应用(三)--主数据管理篇(上)

三甲医院主数据范畴涵盖了医院运营与医疗服务全过程所涉及的核心业务实体信息,这些主数据是医院信息系统流畅运行、数据交互共享以及管理决策精准制定的基石。患者主数据作为核心要素之一,囊括了患者的基本身份信息,如姓名、性别、年龄、身份证号、联系方式等,这些信息是患者在医院就诊流程中的身份标识,贯穿挂号、就诊、检查检验、住院、出院结算等各个环节。患者的医保信息同样关键,包括医保类型、参保地、医保卡号等,直接关联医疗费用报销流程,影响医院财务结算与医保部门的数据交互。

AllenLV的博客 1660

【Mysql】Mysql高级部分笔记

Mysql高级部分3. 视图3.1 视图概述4. 存储过程和函数4.1 含义4.2 创建存储过程4.3 调用存储过程4.4 查看存储过程4.5 删除存储过程4.6 存储过程的语法4.6.1 变量4.6.2 if4.6.3 传递参数4.6.4 case结构4.6.5 while 循环4.6.7 repeat 3. 视图 3.1 视图概述 ​ 视图(View)是一种虚拟的表,视图并不自然数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图就是一条SELECT语句

qq_43751336的博客 752

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql高级笔记_MySQL高级部分笔记

有关于MySQL的高级部分笔记这是一篇关于MySQL高级部分的笔记主要是,sql优化以及mysql锁的相关内容,以及主从配置等内容等比较基础的优化一、逻辑架构部分逻辑架构逻辑架构介绍图如下连接层:最上层是一些客户端和连接服务,包含本地的sock通讯大多时基于客户端/服务端工具实现的类似于tcp/ip的通讯服务层:完成大多数的核心服务的功能,如,SQL接口,并完成缓存的查询SQL的分析和优化以及部分...

weixin_39714528的博客 342

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mysql高级部分学习

学习尚硅谷的mysql高级视频的笔记。 1、mysql的配置文件。 在windows中是my.ini文件: 1)、log-bin:表示主从复制的日志文件,用于主从复制。 2)、log-error="SO3JFYNN8EW6GMO.err":表示错误日志。 3)、server-id=1:表示本机的序号为1。 4)、datadir=D:/mysql5.7/Data:存放数据库信息的目录, ...

chenjianhuideyueding的博客 3766

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MySQL高级部分笔记

有关于MySQL的高级部分笔记 这是一篇关于MySQL高级部分的笔记主要是,sql优化以及mysql锁的相关内容,以及主从配置等内容等比较基础的优化 一、逻辑架构部分 逻辑架构 逻辑架构介绍图如下        连接层:最上层是一些客户端和连接服务,包含本地的sock通讯大多时基于客户端/服务端工具实现的类似于tcp/ip的通讯 ...

KiKi821203的博客 235
上一篇: 图解 SQL,这也太形象了吧
下一篇: 烦人的NULL,你可以走开点了
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值