首页
学习
活动
专区
圈层
工具
发布

pandas入门:Series、DataFrame、Index基本操作都有了!

后为:\n', series.append(series1)) 输出: 在series插入series1后为: a 3 b 1 c 2 d 3 e 4 f 4 g...5 dtype: int64 # 新增单个数据 series1['h'] = 7 print('在series1插入单个数据后为:\n', series1) 输出: 在series1插入单个数据后为:...基本数据结构,类似数据库中的表。...表示删除的行或列的标签。无默认值 axis:接收0或1。表示执行操作的轴向,其中0表示删除行,1表示删除列。默认为0 levels:接收int或者索引名。表示索引级别。...:计算两个Index对象的并集 isin:计算一个Index是否在另一个Index,返回bool数组 delete:删除指定Index的元素,并得到新的Index drop:删除传入的值,并得到新的Index

4.9K30

MySQL 8.0新特性:隐藏字段

上一篇介绍了MySQL8.0新特性之隐藏索引《MySQL 8.0新特性:隐藏索引》,这篇文章主要给大家介绍了关于MySQL 8.0新特性之隐藏字段; MySQL 8.0.23 版本增加了一个新的功能:隐藏字段...删除某个表中的隐藏字段时,同时会从相关索引中删除该字段。 外键约束可以基于隐藏字段进行定义,同时外键约束也可以引用隐藏字段。 CHECK 约束可以基于隐藏字段进行定义。...如果使用CREATE TABLE … LIKE语句复制表结构,将会复制原表中的隐藏字段,而且它们在新表中仍然是隐藏字段。...如果想要为上面的语句提供一个非默认的数据,可以在字段列表中显式指定隐藏字段并且在 VALUES() 列表中指定一个数值。...准确来说,如果某个新的数据行和已有数据行的唯一键字段值相同,无论索引字段是否可见,都会使用以下处理方式: 如果指定了 IGNORE 修饰符,INSERT、LOAD DATA 以及 LOAD XML 都会忽略新的数据行

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

    Mysql面试题目

    简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。...Serializable(可串行化) 这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。...2、非重复读(nonrepeatable read):在同一个事务中,同一个查询在T1时间读取某一行,在T2时间重新读取这一行时候,这一行的数据已经发生修改,可能被更新了(update),也可能被删除了...因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。...BIGINT类型的ID字段,存储引擎为InnoDB,无其他索引 优化后为(提示:优化成一条简单的SQL语句,即无子查询,无JOIN关联): SELECT ID, WAYBILL_NO, EXP_TYPE

    1.2K30

    MySQL——锁(一)

    未修改主键并且被更新的列在修改前后所占用的存储空间发生变化 先在B+树中定位到这条记录的位置,然后获取这条记录的X锁,之后将原记录彻底删除掉(即:把记录彻底移入垃圾链表),最后再插入一条新记录。...---- 二、多粒度锁 上面提到的锁都是针对记录的,可以称为行级锁/行锁;对一条记录加行锁,影响的只是该行记录而已,所以行锁的粒度比较细。 如果一个事务在表级别进行加锁,就称为表级锁/表锁。...兼容性关系如下所示: 表级别的锁的兼容性 ---- 三、MySQL中的行锁和表锁 3.1> 其他存储引擎中的锁 对于MyISAM、MEMORY、MERGE这些存储引擎来说,它们只支持表级锁,而且这些存储引擎并不支持事务...3.2> InnoDB存储引擎中的锁 InnoDB存储引擎既支持表级锁也支持行级锁 ---- 3.2.1> InnoDB中的表级锁 a> S锁、X锁 InnoDB存储引擎提供的表级S锁或者X锁相当“...如下图所示: 【解释】 意味着不允许别的事务在no值为5的记录前面的间隙插入新记录,即:no列的值在区间(3,5)的新记录是不允许立即插入的,当gap锁释放才可以插入。

    31430

    SQL(Structured Query Language)简介和常见 SQL 命令示例

    它是一个功能强大的语言,用于执行各种数据库操作,包括检索数据、插入新记录、更新记录、删除记录、创建数据库、创建新表、设置权限以及执行存储过程和视图等。...SQL 的功能:SQL 可以执行各种任务,包括从数据库中检索数据、向数据库中插入新记录、更新数据库中的记录、从数据库中删除记录,还可以创建新的数据库、表、存储过程和视图。...SQL 的基本概念:SQL 数据库中的数据存储在表中,表由列和行组成。每个表都有特定的字段(列),用于存储不同类型的数据。记录(行)是表中的具体数据项。...DROP INDEX:用于删除索引。DROP INDEX 语句用于删除表中的索引。...最后为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。看完如果觉得有帮助,欢迎点赞、收藏和关注

    56610

    mysql--innodb之索引组织表

    )组成 独立表空间只存储数据,索引等,其他信息如undo日志,二次写缓存等还是存放到共享表中 创建的表默认大小是96kb。...创建新表时一般先使用32个页大小的碎片页来存放数据,使用完后再申请64个连续页(段)的申请 段 常见段有数据段、索引段、回滚段等 - 数据段一般为b+树的叶子节点 - 索引段位b+树的非叶节点...只存储实际使用的空间,不预留固定大小 COMPRESSED: DYNAMIC格式的变体,提供整页压缩,减少磁盘使用,会增加cpu的使用(数据压缩需要) Redundant 行记录格式 create table...、索引堆中该记录的排序、记录类型、页中下一条记录的相对位置(偏移量) Dynamic行记录格式 变长列页外存储:将可变长列值存储在页外,索引记录值包含溢出页的20字节指针 减少了数据页的大小,替身了容纳行数...,适合大量可变长列的表 增加了i/o操作,可能导致部分查询性能下降 Compressed行记录格式 使用zlib算法会对行数据进行压缩,减少磁盘空间使用 页外存储和Dynamic相似,会将可变长度的列存储在页外

    27310

    MySQL存储引擎之Myisam和Innodb总结性梳理

    在序列顶的值被删除之后就不 能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列, 可以出现重使用从序列顶部删除的值的情况)。...AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但 是在MyISAM表中,可以和其他字段一起建立联...注意的是,当count(*)语句包含where条件时MyISAM也需要扫描整个表 7)对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引 8)...清空整个表时,InnoDB是一行一行的删除,效率非常慢。...但要注意,INNODB的行级锁是有条件的。在where条件没有使用主键时,照样会锁全表。比如DELETE FROM mytable这样的删除语句。

    1.1K50

    【MySQL-26】万字总结<SQL优化>——【插入优化 主键优化 order by优化-group by优化-limit优化-count优化-update优化】

    找到第一个 数据页百分之50的位置 ,大于百分之50的部分移动的新开辟的数据页当中 之后插入id为50的数据 插入要进入的50数据时,此时就应该改动链表指针 【3】页合并(主键乱序删除) 当删除一行记录时...,实际上记录并 没有被物理删除 ,只是记录被标记(flaged)为删除并且它的空间变得允许被其他记录声明使用。...MERGE THRESHOLD:合并页的阈值,可以自己设置,在创建表或者创建索引时指定 演示: 有三个页,我们删除中间页的数据,依次删除主键为16,15,14,13的数据,此时达到了MERGE_THRESHOLD...filesort: 通过表的索引或全表扫描,读取满足条件的数据行, 非直接返回 ,然后在排序缓冲区sort buffer中完成排序操作所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序...,此时加的是行锁, 不会影响其他终端对其他行的操作权限 如果对象没带索引,此时加的是表锁, 会影响其他终端对其他行的操作权限 update sludent set no='2000100100' where

    25110

    史上最全存储引擎、索引使用及SQL优化的实践

    在创建索引时,可以指定在删除、更新父表时,对子表进行的相应操作,包括RESTRICT、CASCADE、SET NULL和NO ACTION。...RESTRICT和NO ACTION相同,是指限制在子表有关联记录的情况下,父表不能更新; CASCADE表示父表在更新或者删除时,更新或者删除子表对应的记录; SET NULL则表示父表在更新或者删除的时候...针对上面创建的两个表,子表的外键指定是ON DELETE RESTRICT ON UPDATE CASCADE方式的,那么在主表删除记录的时候,如果子表有对应记录,则不允许删除,主表在更新记录的时候,如果子表有对应的记录...3.3.7 explain 之 rows 扫描行的数量 3.3.8 explain 之 extra 其他的额外的执行计划信息,在该列展示。...5.8.1 USE INDEX 在查询语句中表名的后面,添加use index来提供希望MySQL去参考的索引列表,就可以让MySQL不再考虑其他可用的索引。

    1.5K30

    SQL Server 2014聚集列存储索引

    其中对于在小表的指定值或者小范围的查询来讲,尤其针对事务性的负载行存储是很合适的。但是对于分析性负载像数据仓库和BI,在查询中将会对大量数据进行全扫描,例如事实表,这时候列存储索引就是更好地选择。...聚集索引插入、删除和更新实现逻辑: 插入新行的时候,值被存储在deltastore中,直到达到最小rowgroup(行组)大小时,然后压缩并移动到列存储数据段中。...更新的时候,在deltastore存储中行数据被删除,然后在列存储数据段中被标记为删除,新的列别插入到deltastore中。 最后当重建索引的时。...下图中我在SQL Server2014 企业版中,创建聚集索引: image.png 需要注意的是如果在表上已经有其他索引,尝试创建聚集列存储索引就会出现错误,正如我们之前说的,同一个表中不能或者其他索引...补充,在2016中增加的几个我认为不错新的feature: 基于聚集列存储索引的 B 树索引; 基于内存优化表的列存储索引; CREATE TABLE 和 ALTER TABLE 中的列存储索引的压缩延迟选项

    1.3K90

    SQL Server 2014聚集列存储索引

    其中对于在小表的指定值或者小范围的查询来讲,尤其针对事务性的负载行存储是很合适的。但是对于分析性负载像数据仓库和BI,在查询中将会对大量数据进行全扫描,例如事实表,这时候列存储索引就是更好地选择。...聚集索引插入、删除和更新实现逻辑: 插入新行的时候,值被存储在deltastore中,直到达到最小rowgroup(行组)大小时,然后压缩并移动到列存储数据段中。...更新的时候,在deltastore存储中行数据被删除,然后在列存储数据段中被标记为删除,新的列别插入到deltastore中。 最后当重建索引的时。...需要注意的是如果在表上已经有其他索引,尝试创建聚集列存储索引就会出现错误,正如我们之前说的,同一个表中不能或者其他索引: ? 不用选择列,所有数据都包含在内了: ?...补充,在2016中增加的几个我认为不错新的feature: 基于聚集列存储索引的 B 树索引; 基于内存优化表的列存储索引; CREATE TABLE 和 ALTER TABLE 中的列存储索引的压缩延迟选项

    1.3K40

    高性能MySQL卷一之架构分析

    高性能MySQL卷一之架构分析 Mysql架构 优化与执行 并发控制 读写锁 锁粒度 表锁 行级锁 事务 隔离级别 死锁 事务日志 MYSQL中的事务 自动提交 在事务中混合使用存储引擎 隐式和显示锁定...2.行的删除版本要么未定义,要么大于当前事务的版本号,这可以确保事务读取到的行,在事务开始前未被删除。...只有符合上面两个条件的记录,才能返回作为查询结果 INSERT InnoDB为新插入的每一行保存当前系统版本号作为行版本号 DELETE InnoDB为删除的每一行保存当前系统版本号作为行删除标识...UPDATE InnoDB为插入一行新记录,保存当前系统版本号作为行版本号,同时保存当前系统版本号到原来的行作为删除标识 MVCC只在可重复读和读提交下面生效,其他两个隔离级别都和MVCC不兼容,...InnoDB其他特性这里暂时不讲,后面深入分析时再聊 ---- MyISAM存储引擎 在MYSQL 5.1版本之前,MYISAM是默认的存储引擎,MYISAM提供了大量的特性,包括全文索引,压缩,空间函数等

    33630

    MySQL Innodb和Myisam

    一个 6 字节的DB_ROW_ID字段包含一个行 ID,随着插入新行而单调增加。如果 InnoDB自动生成聚集索引,则该索引包含行 ID 值。否则,该 DB_ROW_ID列不会出现在任何索引中。...与聚集索引记录不同,二级索引记录不包含隐藏的系统列,也不会就地更新。 当二级索引列被更新时,旧的二级索引记录被删除标记,新记录被插入,并最终被删除标记记录被清除。...当二级索引记录被删除标记或二级索引页被更新的事务更新时,InnoDB在聚集索引中查找数据库记录。...共享锁允许持有锁读取行的事务 排它锁允许持有锁,更新或删除行的事务 InnoDB支持多粒度锁定,允许行锁和表锁共存。...注意的是,当count()语句包含where条件时MyISAM也需要扫描整个表 对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引 清空整个表时

    2.1K20

    MSSQL之八 实现视图与索引

    l 如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。...聚集索引的结构示意图如图所示 非聚集索引: 非聚集索引与聚集索引具有相同的B树结构,但是在非聚集索引中,基础表的数据行不是按照非聚集键的顺序排序和存储,且非聚集索引的叶级是由索引页而不是由数据页组成。...非聚集索引既可以定义在表或视图的聚集索引上,也可以定义在表或视图的堆上。非聚集索引中的每一个索引行都是由非聚集键值和行定位符组成,该行定位符指向聚集索引或堆中包含该键值的数据行。...如果表或视图中没有聚集索引(堆),则行定位符是指向行的指针RID,而RID由文件标识符ID、页码和页上的行数生成。如果表或视图上有聚集索引,则行定位符则是行的聚集索引键。...非聚集索引的结构示意图如图 其他类型的索引: 除了聚集索引和非聚集索引之外,Microsoft SQLServer 2008系统还提供了一些其他类型的索引或索引表现形式,这些内容包括唯一性索引、包含性列索引

    39810

    实战课堂:系统CPU高消耗的SQL筛选和最佳索引优化

    在一次客户系统性能优化项目中,经过第一阶段的优化之后,数据库的DB Time和物理读都明显降低,但是我们发现CPU并没有明显降低。...这两条SQL基本一致,只是mod一个字段的值不同,一个筛选mod之后为1的数据,一个筛选mod之后为0的数据。经验证这两条SQL解决方法一致,以其中一条为例。...而如果 1393 次执行,只返回 10 行记录,那么单次的逻辑读消耗就显得高的可怕。这也是高 CPU 消耗的原因。 ?...我们再来分析一下表的元数据,可以看到现有索引的效率不佳,过滤性极差: ? 那么我们继续分析一下查询中的其他条件,以期望尽快的筛选记录,减少逻辑读。...在创建了新的索引之后,可以看到整个SQL的执行效率大大提升: ? 建立该索引之后,执行时间由4966 ms降低到10m秒以内。逻辑读由125887降低到10以下。系统的CPU消耗得以快速消减。

    79940

    MySQL高级

    MySQL提供插件式存储引擎架构 默认InnoDB,支持事务,行级锁,外键 1.1、各种存储引擎特性 2、索引 索引是帮助MySql高效查询数据的数据结构 2.1、优势 类似书籍的目标索引,提高数据检索的效率...3)SUBQUERY:在select或where列表中包含子查询 4)DERIVED:在from列表中包含子查询,被标记为DERIVED(衍生)MYSQL会递归执行这些子查询,把结果放在临时表中...select 执行顺序:2、1、null 3. 3、explain之table 此行数据来自于那张表 3. 4、explain之type 1)NULL:MySQL不访问任何表,索引,直接返回结果...长度越短越好 3. 6、explain之rows 扫描行的数量 3. 7、explain之ref 显示索引的那一列被使用了,如果可能的话,是一个常量。...,会锁定当前操作行 从对数据操作的类型分: 1)读锁(共享锁):针对同一份数据,多个读操作可以同时进行不互不影响 2)写锁(排它锁):当时操作没有完成之前,它会阻断其他写锁和读锁 5.2、MyISAM

    21210

    MySQL 教程上

    删除表的内容而不是表 DELETE 语句从表中删除行,甚至是删除表中所有行。但是,DELETE不删除表本身。 更快的删除 如果想从表中删除所有行,不要使用 DELETE。...只有一点例外,假如表中的一个旧记录与一个用于 PRIMARY KEY 或一个 UNIQUE 索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。...注意,除非表有一个 PRIMARY KEY 或 UNIQUE 索引,否则,使用一个 REPLACE 语句没有意义。该语句会与 INSERT 相同,因为没有索引被用于确定是否新行复制了其它的行。...区别就是 replace into 的时候会删除老记录。如果表中有一个自增的主键。那么就要出问题了。 首先,因为新纪录与老记录的主键值不同,所以其他表中所有与本表老数据主键id建立的关联全部会被破坏。...考虑这个场景:你正在增加一个新订单。这要求在 orders 表中创建一行,然后在 orderitems 表中对订购的每项物品创建一行。

    4.1K10

    Java面试——数据库知识点

    TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 表和索引所占空间。...TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。...数据库还可能防止添加将在表中创建重复键值的新数据。 主键索引 :数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。...如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。...常见于使用非唯一索引即唯一索引的非唯一前缀进行的查找 eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。

    69320

    MSSQL之二 Sql Server中管理库与表

    (4)Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其他临时操作提供存储空间。...例如,在某个数据库中,3个文件(data1.ndf、data2.ndf和data3.ndf)分别创建在3个不同的磁盘驱动器中,然后为它们指定一个文件组fgroup1。...在表中增加新列、删除已有的列是常见的修改表结构的操作。 当用户向表中添加一个新列时,Microsoft SQLServer为表中该列在已有数据的每一行中的相应位置插入一个数据值。...因此,当向表中增加一个新列时,最好为该新列定义一个默认约束,使该列有一个默认值。如果该新列没有默认约束,并且表中已经有了其他数据,那么必须指定该新列允许空值,否则系统将产生一个错误信息。...这样,表中第一行的IDENTITY列的值是种子值,其他行的IDENTITY列的值是在前一行值的基础上增加一个增量值得到的。 【例2-13】使用IDENTITY属性 IDENTITY属性的作用范围是表。

    60710
    领券