首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas库的基础使用系列---获取行和列

前言我们上篇文章简单的介绍了如何获取行和列的数据,今天我们一起来看看两个如何结合起来用。获取指定行和指定列的数据我们依然使用之前的数据。...我们先看看如何通过切片的方法获取指定列的所有行的数据info = df.loc[:, ["2021年", "2017年"]]我们注意到,行的位置我们使用类似python中的切片语法。...接下来我们再看看获取指定行指定列的数据df.loc[2, "2022年"]是不是很简单,大家要注意的是,这里的2并不算是所以哦,而是行名称,只不过是用了padnas自动帮我创建的行名称。...通常是建议这样获取的,因为从代码的可读性上更容易知道我们获取的是哪一行哪一列。当然我们也可以通过索引和切片的方式获取,只是可读性上没有这么好。...df.iloc[[2,5], :4]如果不看结果,只从代码上看是很难知道我们获取的是哪几列的数据。结尾今天的内容就是这些,下篇内容会和大家介绍一些和我们这两篇内容相关的一些小技巧或者说小练习敬请期待。

63800

【愚公系列】2021年12月 Mysql数据库-模糊查询like效率问题和优化方案

文章目录 前言 一、模糊查询like效率 二、更高效的写法 1.索引 2.LOCATE('substr',str,pos)方法 3.POSITION('substr' IN `field`)方法 4.INSTR...(`str`,'substr')方法 5.FIND_IN_SET(str1,str2)方法 总结 前言 这篇文章主要向大家介绍Mysql模糊查询like效率,以及更高效的写法,主要内容包括基础应用、实用技巧...提示:以下是本篇文章正文内容,下面案例可供参考 一、模糊查询like效率 在使用msyql进行模糊查询的时候,很天然的会用到like语句,一般状况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级...,千万级的时候,查询的效率就很容易显现出来。...这个时候查询的效率就显得很重要。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    带你学MySQL系列 | 多表连接查询的92语法和99语法,你都知道吗?

    前面两天带着大家换了一个口味,带着大家学习了pyecharts的原理和部分图形制作。今天我们继续回归带你学MySQL系列,带着大家继续学习MySQL数据库。...多表查询是数据分析师日常工作中一定会使用到的一个知识点,可见它的重要程度有多大。今天这个文章全面总结了MySQL多表查询的几种情况,你知道MySQL的92语法和99语法吗?...既然你没有连接条件,本表中的第一行肯定是能和另外表中的所有行进行一一匹配,同理,本表中的第二行肯定是能和另外表中的所有行进行一一匹配,以此类推,本表中的最后一行m也可以和另外表中的所有行进行一一匹配。...也就是说:实际业务中也是一个业务由多个表构成,不同的信息存储在不同的表中,如果我们想要获取的信息来自多张表,此时你就需要使用连接查询。...2)连接查询的分类 ① 按年代分类 MySQL中不支持全连接(full join),一般使用的是union关键字完成全连接的功能。

    1K20

    如何避免回表查询?什么是索引覆盖? | 1分钟MySQL优化系列

    | 1分钟MySQL优化系列 强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 大家好,我是架构君,一个会写代码吟诗的架构师。...今天说一说如何避免回表查询?什么是索引覆盖? | 1分钟MySQL优化系列,希望能够帮助大家进步!!! 《迅猛定位低效SQL?》...; (2)name为KEY,普通索引,叶子节点存储PK值,即id; 既然从普通索引无法直接定位行记录,那普通索引的查询过程是怎么样的呢?...id,通过name的索引树即可获取id和name,无需回表,符合索引覆盖,效率较高。...id,但sex字段必须回表查询才能获取到,不符合索引覆盖,需要再次通过id值扫码聚集索引获取sex字段,效率会降低。

    2.4K30

    Mysql探索(一):B-Tree索引

    InnoDB二级索引的叶节点中存储的不是“行指针”,而是主键值,并以此作为指向行的“指针”。 ? 松散索引扫描  MySQL并不支持松散索引扫描,也就是无法按照不连续的方式扫描一个索引。...,但是在查询中只指定了字段b,MySQL无法使用这个索引,从而只能通过全表扫描找到匹配的行,如图5所示。...覆盖索引  索引除了是一种查找数据的高效方式之外,也是一种列数据的直接获取方式。MySQL可以使用索引来直接获取列的数据,这样就不需要读取数据行。...SQL查询只需要扫描索引而无需回表,会带来很多好处: 索引条目数量和大小通常远小于数据行的条目和大小,所以如果只需要读取索引,那么MySQL就会极大地减少数据访问量。...InnoDB的二级索引在叶子节点中保存了行的主键,索引如果二级主键能够覆盖查询,则避免对主键索引的第二次查询。

    1K10

    【MySQL系列】一条SQL,我怎么知道它有没使用到索引?

    以贴近现实的【面试官面试】形式帮助你系统学习后端技术 本期博客为《MySQL系列》 ❤创作不易,不妨点赞、收藏、关注支持一下 博客内容持续产出以下系列 《Redis系列》 《MySQL系列》 《Kafka...hhh就像我刚刚说的,业务上一般都是范围查询,而哈希索引不支持任何范围查询。 哈希索引会为所有的索引列计算一个哈希码,在哈希表中保存哈希码和指向每个数据行的指针,这种结构对精确匹配查询效率才高。...聚簇索引 面试官:聚簇索引和二级索引有什么关联? 好的面试官。 是这样的,二级索引指的是非主键索引,它的叶子节点保存的只是行的主键值,所以需要通过主键来找到行数据。...而聚簇索引是通过主键来建树,叶子节点包含了行的全部数据,主键索引就是聚簇索引。 所以通过二级索引查找行,需要先在二级索引建立的B-Tree上找到主键值,再从聚簇索引建立的B-Tree找到行数据。...type cost:通过索引一次查询 ref:使用到索引 range: 使用到索引 all:全表扫描 Extra using filesort:使用外部文件排序,发生在无法使用索引的情况下 using

    40998

    全面拆解实时分析数据存储系统 Druid

    与单个无状态节点不同,Druid 将状态存储在两个数据源中。 MySQL,其中包含了配置信息和元数据,比如片段的索引。...不幸的是,如果 Zookeeper 离线,系统将无法提供新的片段——历史节点将无法告知已成功获取片段,所以 Druid 负责查询数据的组件将无法转发查询。 使用不可变片段简化了历史节点的实现。...协调器节点 协调器节点决定哪些片段存储在历史节点上,以及存储多长时间。 为了做出决定,协调器节点从两个位置读取数据:MySQL 和 Zookeeper。...如果协调器节点不可用(可能因为 MySQL 或 Zookeeper 出了问题),那么历史节点和实时节点将继续运行,但可能会出现超载(由于没有了负载均衡)。...例如,如果一个查询选择了列的子集,那么数据库只需要查询这些列的数据子集。基于行的解决方案需要扫描每一行,并选择相关的列。

    92520

    这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!

    之所以这样设计,一个原因就是:如果和MyISAM一样在主键索引和辅助索引的叶子节点中都存放数据行指针,一旦数据发生迁移,则需要去重新组织维护所有的索引。...需要需要在name索引中找到name对应的Id,然后通过获取的Id在主键索引中查到对应的行。整个过程需要扫描两次索引,一次name,一次id。...当然,如果你同时需要获取age的值: select id,age from users where name = ? 这样就无法使用到覆盖索引了。...查询条件中使用函数,索引将会失效,这和列的离散性有关,一旦使用到函数,函数具有不确定性。 联合索引中,如果不是按照索引最左列开始查找,无法使用索引。...联合索引中,如果查询有某个列的范围查询,其右边所有的列都无法使用索引。 END 更多精彩文章?分布式大并发系列?架构设计系列?趣学算法和数据结构系列?设计模式系列

    56831

    如何添加合适的索引:MySql 数据库索引认知

    在 Mysql 中 默认使用 InnDB 存储引擎,表中的数据存储在一个数据结构树(B+树)的所有叶子节点,每次需要依次访问一遍所有的叶子节点就叫做全表扫描,对于上面的SQL,hotel_id 和 room_order_no...Using index condition:表示查询能通过索引过滤出符合条件的行,但是如果查询的字段不完全在索引中,MySQL 可能仍然需要回表来获取那些不在索引中的字段。...一个索引页内最少存储 2 行记录,因为如果索引页内只有 1 行记录,就无法构成树的结构了. InnoDB 为什么限制一行记录的最大长度?...也就是下面这样 在叶子节点,索引1和记录行r1存储在一起,查找到索引就是查找到数据库记录,主键ID和所在的记录行存储在一起。...所以 MySQL的数据库文件实际上是以主键作为中间节点,行记录作为叶子节点的一颗B+树。

    9500

    图解 MySQL 索引,清晰易懂,写得太好了!

    另外 B+tree 叶子节点采用单链表链接适合 MySQL 中常见的基于范围的顺序检索场景,而 B-tree 无法做到这一点。...另外,MySQL 系列面试题和答案全部整理好了,微信搜索Java技术栈,在后台发送:面试,可以在线阅读。...B+tree 索引与 Hash 表 范围查询是 MySQL 数据库中常见的场景,而 Hash 表不适合做范围查询,Hash 表更适合做等值查询,另外 Hash 表还存在 Hash 函数选择和 Hash...说了聚簇索引和二级索引 肯定要提到「回表查询」。 由于二级索引的叶子节点不存储完整的表数据,所以当通过二级索引查询到聚簇索引的列值后,还需要回到局促索引也就是表数据本身进一步获取数据。...另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 MySQL 系列面试题和答案,非常齐全。

    68631

    2021 年 Node.js 开发人员学习路线图

    类似于电子表格,关系表由行和列组成。 关系数据库管理系统 SQL Server:微软的关系数据库产品,支持标准 ANSI SQL,也提供产品独有的 SQL 实现。...PostgreSQL 支持绝大多数标准 SQL 查询,还提供复杂 SQL 查询、外键、触发器、事务、MVCC、流复制等特性。 MariaDB:MySQL 的改进版,额外内建了多种特性、安全和性能改进。...集合包含一系列文档和函数,对标关系数据库中的表。 Redis:可用于数据库、缓存和消息代理(Message Broker)。...Node.js 提供的节点缓存(node-cache)和内存缓存(memory-cache)软件库,很好地处理了 Node 服务器上的内存缓存。...例如,对于需要与域服务器或 Web Service 通信的对象,无法执行快速、轻量级的测试,这时就需要 Mocking 测试。

    2.5K20

    浅谈MySQL数据库面试必要掌握知识点

    定义 MySQL官方地址 https://www.mysql.com/ MySQL 8系列最新版本为8.0.27,5系列的最新版本5.7.35 MySQL发展至今仍然是世界上最流行的关系型数据库管理系统...从根节点出发,查找到叶子节点方可以获得所查键值然后根据查询判断是否需要回表查询数据. hash索引进行等值查询更快(-般情况下),但是却无法进行范围查询.因为在hash索引中经过hash函数建立索引之后...当查询使用聚簇索引时,在对应的叶子节点,可以获取到整行数据,因此不用再次进行回表查询. 非聚簇索引一定会回表询吗?...活锁:使用优先级队列,先来一直获取不到锁。 死锁:一次性封锁法、顺序封锁法,事先规定顺序。 mysql锁分为共享锁和排他锁,也叫做读锁和写锁。...以固定顺序访问表和行。 MySQL如何尽可能避免死锁 以固定的顺序访问表和行。

    66910

    MySQL索引分类及相关概念辨析

    从InnoDB 1.2.x版本开始,InnoDB存储引擎开始支持全文检索,对应的MySQL版本是5.6.x系列。...从逻辑角度 主键索引 MySQL默认使用主键建立索引。 将索引和数据(或数据地址)一块维护在一棵B+Tree上,树的非叶子节点是主键,叶子节点是主键及主键对应的行记录(或数据地址)。...聚集索引的叶子节点就是索引列+数据值,整个磁盘数据页都是叶子节点。换句话说,数据页上存放的是完整的每行记录。因此聚集索引的一个优点就是:通过过聚集索引能获取完整的整行数据。...当通过辅助索引来查询数据时,InnoDB存储引擎会遍历辅助索引并通过叶子节点获得指向主键索引的主键,然后再通过主键索引(聚集索引)来找到一个完整的行记录。这个过程被称为回表。...BY和GROUP BY,也无法使用前缀索引做覆盖扫描。

    55011

    MySQL索引分类及相关概念辨析

    从InnoDB 1.2.x版本开始,InnoDB存储引擎开始支持全文检索,对应的MySQL版本是5.6.x系列。...从逻辑角度 主键索引 MySQL默认使用主键建立索引。 将索引和数据(或数据地址)一块维护在一棵B+Tree上,树的非叶子节点是主键,叶子节点是主键及主键对应的行记录(或数据地址)。...聚集索引的叶子节点就是索引列+数据值,整个磁盘数据页都是叶子节点。换句话说,数据页上存放的是完整的每行记录。因此聚集索引的一个优点就是:通过过聚集索引能获取完整的整行数据。...当通过辅助索引来查询数据时,InnoDB存储引擎会遍历辅助索引并通过叶子节点获得指向主键索引的主键,然后再通过主键索引(聚集索引)来找到一个完整的行记录。这个过程被称为回表。...BY和GROUP BY,也无法使用前缀索引做覆盖扫描。

    42940

    Schemaless架构(二):Uber基于MySQL的Trip数据库

    读取和写入请求 一旦Schemaless用作读取,比如读取单元或查询索引时,工作节点能够从集群的任意存储节点中读取数据。...Schemaless在设计时,旨在将存储节点无法响应读取与写入请求的失败影响降到最低。 读取请求 Master和minion的设置意味着:只要集群中有一个节点可用,就能满足读取请求。...Schemaless本身是一个在MySQL之上相对较薄的层面,负责将路由请求发送给正确的数据库。通过使用MySQL索引,并将build缓存到InnoDB中,单元和二级索引的查询速度很快。...每个Schemaless分片都是独立的MySQL数据库,而每个MySQL数据库服务器包含一系列MySQL数据库。...而row_key、column_name和ref_key分别代表Schemaless单元的行键、列名和引用键。为了通过这三栏进行有效地查询,我们为这三列定义了一个复合MySQL索引。

    2.1K70

    Mysql探索(一):B-Tree索引

    InnoDB的二级索引和聚簇索引很不同。InnoDB二级索引的叶节点中存储的不是“行指针”,而是主键值,并以此作为指向行的“指针”。 ?...因为索引的前导字段是列a,但是在查询中只指定了字段b,MySQL无法使用这个索引,从而只能通过全表扫描找到匹配的行,如下图所示。 ?...覆盖索引 索引除了是一种查找数据的高效方式之外,也是一种列数据的直接获取方式。MySQL可以使用索引来直接获取列的数据,这样就不需要读取数据行。...SQL查询只需要扫描索引而无需回表,会带来很多好处: 索引条目数量和大小通常远小于数据行的条目和大小,所以如果只需要读取索引,那么MySQL就会极大地减少数据访问量。...InnoDB的二级索引在叶子节点中保存了行的主键,索引如果二级主键能够覆盖查询,则避免对主键索引的第二次查询。

    1.6K30

    高并发之存储篇:关注下索引原理和优化吧!躲得过实践,躲不过面试官!

    Mysql是关系型数据库,是为了支持复杂的业务数据查询而创建的,查询方式、数据获取需求多种多样,要求MySQL具备更加复杂的索引机制来加速复杂业务查询场景。...其中页是MySQL和磁盘交互的最小单位,怎么从页找到行,怎么聚合到块、到段再到空间呢。 1数据记录最小单位-- 行 从上面总图中摘出一条记录的结构如下图: ?...图片来自《从根儿上理解 MySQL》 这就是一棵B+树,页节点有层级区分,页中的行记录有类型区分。 业务数据都包含在叶子节点中,目录数据都包含在其他非叶节点中。...即使用主键值进行记录和页的排序,且叶子节点含有全部用户数据。 寻求改进:如果我想用其他列来查询,怎么办?...此索引树和聚蔟索引树的差别在于,索引节点是以a列的值为目录,且叶子节点只包含a列的值和主键两个值。 如果用户需要查询除c列以外的更多信息,则需要拿主键ID再去聚蔟索引查一次,也叫回表。

    85520

    途虎 面经,其实挺简单的!

    支持事务:Redis支持事务,可以将多个命令打包执行,保证一系列的操作的原子性。事务可以通过MULTI、EXEC和DISCARD等命令来实现。...B树和B+树是两种常用的自平衡搜索树,它们在存储和查询方面有一些明显的区别。 存储结构:B树的每个节点包含键值和指向子节点的指针,而B+树的内部节点只包含键值,而不包含指向子节点的指针。...索引列进行了隐式类型转换:如果查询条件中的索引列类型与索引列的数据类型不一致,MySQL会进行隐式类型转换。这种情况下,索引将无法使用,查询效率会降低。...索引列上存在NULL值:如果索引列上存在NULL值,那么索引将无法起到作用。因为MySQL使用B-Tree索引,而NULL值无法参与B-Tree的排序。...执行:MySQL服务器会按照生成的执行计划,执行SQL语句。具体的执行过程包括以下几个步骤:a. 打开表:根据执行计划,MySQL服务器会打开需要访问的表,并获取对应的锁定。b.

    20430

    不懂索引,简历上都不敢写自己熟悉SQL优化

    今天给大家带来MySQL索引相关核心知识。对MySQL索引的理解甚至比你掌握SQL优化还重要,索引是优化SQL的前提和基础,我们一步步来先打好地基。...本文收录在我开源的《Java学习面试指南》中,目前已经更新有近200道面试官常考的面试题,涵盖了Java系列、Redis系列、MySQL系列、多线程系列、Kafka系列、JVM系列、ZooKeeper系列等等...另外企业业务在查询上更多的是范围查询,你对网页的每一次翻页操作都是对MySQL数据的一次范围查询。B-Tree的元素都存储叶子节点,同时形成双向链表结构,很适合范围查询这种复杂查询操作。...同时在哈希表中保存哈希码和指向每个数据行的指针,这种结构对精确匹配查询的效率极高。 MEMORY数据库引擎底层采用的就是哈希索引。 1.4 聚簇索引 面试官:聚簇索引和二级索引有什么关联?...首先,聚簇索引和主键索引是等同的,也有一个一般都不提的名称:一级索引。 而B-Tree的二级索引指的是非主键索引,它的叶子节点保存的只是行的主键值,所以需要另外通过主键来找到行数据。

    36397

    2021年Node.js开发人员学习路线图

    类似于电子表格,关系表由行和列组成。 关系数据库管理系统 SQL Server:微软的关系数据库产品,支持标准 ANSI SQL,也提供产品独有的 SQL 实现。...PostgreSQL 支持绝大多数标准 SQL 查询,还提供复杂 SQL 查询、外键、触发器、事务、MVCC、流复制等特性。 MariaDB:MySQL 的改进版,额外内建了多种特性、安全和性能改进。...集合包含一系列文档和函数,对标关系数据库中的表。 Redis:可用于数据库、缓存和消息代理(Message Broker)。...Node.js 提供的节点缓存(node-cache)和内存缓存(memory-cache)软件库,很好地处理了 Node 服务器上的内存缓存。...例如,对于需要与域服务器或 Web Service 通信的对象,无法执行快速、轻量级的测试,这时就需要 Mocking 测试。

    2.6K20
    领券