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

备忘单:提升你的 MariaDB 和 MySQL 数据库技能

MariaDB 提供了很多方便的函数,可以用于创建列,引入数据类型定义,自增选项,对空值的约束,自动时间戳等等。...表示用户名字的字段不能为空(或 null),每一行被创建时会自动生成时间戳。...两个表的数据是独立的,但是你可能需要表一中的一个值来识别表二的记录。 你可以在表一中新增一列对应表二中的值。...为了数据的多样性,在四行记录中分配三个不同的值。 连接表 现在这两个表彼此有了关联,你可以使用 SQL 来展示关联的数据。数据库中有很多种连接方式,你可以尽请尝试。...在图形化的应用中,你可以想象 os 字段可以在下拉菜单中设置,值的来源是 linux 表中的 distro 字段。

1.5K20

reverse_sql - Binlog数据恢复

该工具会根据指定的时间点,在数据库中查找并还原该表在该时间点之前的数据状态。这样您就能轻松地实现数据恢复,防止因意外操作或其他问题导致的数据丢失。...该工具提供了对MySQL 5.7/8.0和MariaDB数据库的广泛支持,使其适用于各种不同的数据库环境。...2、生成可读的 SQL:生成原始 SQL 和反向 SQL。3、支持过滤和筛选:可以根据时间范围、表、DML操作等条件来过滤出具体的误操作 SQL 语句。4、支持多线程并发解析binlog事件。请注意!...由于 BinLogStreamReader 并不支持指定时间戳来进行递增解析,固在每个任务开始之前,使用上一个任务处理过的 binlog_file 和 binlog_pos,这样后续的线程就可以获取到上一个线程处理过的....* TO `yourname`@`%`;恢复在{db}_{table}_recover.sql文件中找到你刚才误操作的DML语句,然后在MySQL数据库中执行逆向工程后的 SQL 以恢复数据。

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

    Apache IoTDB 建模方式详解

    标签模型 实时库、InfluxDB、OpenTSDB等多是基于标签的模型。 在实时库中,每个测点有一个名称(可以看成一个标签)。通常这个测点名称是由符号 “.” 连接的多个属性值。...在一个电厂应用的命名示例是这样的:电厂名称.机组.测点编码。如果将实时库中的所有测点的数据理解成一张表,就是下边这样的: 这个表里,Time 和测点名称就是联合主键。...比如,在IoTDB 中,建立了以下两条时间序列(root.sg.taga, root.sg.value),并用来存储多个测点(a1, b1, c1)的值,这种就是错误的建模方式,这种情况下,同一个时间序列的同一个时间戳只保留最后写入的点...首先根据 select 和 from 子句中的路径找到所有匹配到的时间序列,然后按照不同的对齐方式展示成一张表,这里提供了 3 种对齐方法。...每个时间序列有两列(时间列和值列),使用 disable align 修饰,这里其实是有3个表,每个表中应该空一些。

    1.3K20

    PE文件学习笔记(五):导入表、IAT、绑定导入表解析

    1、导入表(Import Descriptor)结构解析: 导入表是记录PE文件中用到的动态连接库的集合,一个dll库在导入表中占用一个元素信息的位置,这个元素描述了该导入dll的具体信息。...②TimeDateStamp:当时间戳值为0时,表示未加载前IAT表与INT表完全相同;当时间戳不为0(为-1)时,表示IAT与INT表不同,IAT存储的是该dll的所有函数的绝对地址,这样在未加载前就直接填充函数地址的方式为函数地址的绑定...也就是说当时间戳为-1时绑定导入表才有效,而真正的时间戳存放到绑定导入表中,否则无效。 ③ForwarderChain:一般情况下我们也可以忽略该字段。...1,则不需要(不能够)用该值去索引IMAGE_IMPORT_BY_NAME,而是直接去掉最高位,剩下31位的值便是dll函数在导出表中的导出序号。...IAT中存储的函数地址是dll未加载的地址,当PE文件中不存在绑定导入表时,IAT就与INT一样,此时导入表中的时间戳就为0;否则导入表中的时间戳为-1时,dll的真正时间戳存放于绑定导入表中(绑定导入表地址存放在数据目录的第

    1.7K40

    Zabbix监控历史数据清理

    Zabbix监控运行一段时间以后,会留下大量的历史监控数据,Zabbix数据库一直在增大;可能会造成系统性能下降,查看历史数据室查询速度缓慢。...Zabbix里面最大的表就是history和history_uint两个表,而且zabbix里面的时间是使用的时间戳方式记录,所以可以根据时间戳来删除历史数据  一、关闭zabbix、http服务    ...(如果查询出来的结果是0.0,需要将sql中的三个1024删除一个,以G为单位显示) 4、 执行以下命令,清理指定时间之前的数据、对zabbix数据库执行sql命令     use zabbix;...ID是生成Unix时间戳的ID号,需要改为自己生成的ID号  三、启动服务     /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf   ...然后根据表结构重新建立,delete删除的是记录的数据没有修改表 truncate执行删除比较快,但是在事务处理安全性方面不如delete,如果我们执行truncat的表正在处理事务,这个命令退出并会产生错误信息

    1.8K30

    MySql性能测试

    执行速度超过定义时间的查询 不同的系统定义不同的慢查询指标 其实相信大家看到这个慢查询的定义,都会有个疑惑,怎么样去定义执行速度多久才算慢呢?...id相同不同,同时存在:id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行,下图中表示衍生表s1表,derived2的2代表id=2 ?...在不损失精确性的情况下,长度越短越好,key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的 ?...rows:根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要读取的行数 建立索引之前和建立索引之后,找出记录所需要的行数对比 ?...distinct:优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作 例子: ?

    2K40

    常用数据库有哪些?

    按行存储在文件中(先第 1 行,然后第 2 行……) NoSQL 时序数据库 InfluxDB、RRDtool、Graphite、OpcnTSDB、Kdb+ 存储时间序列数据,每条记录都带有时间戳。...在 PostgreSQL 中,数据库大小没有限制,表大小上限为 32TB,一条记录的大小上限为 1.6TB,字段大小上限是 1GB,一个表包含的记录数没有限制,一条记录的字段数上限为 1600 个,一个表上创建的索引数目没有限制...InfluxDB InfluxDB 是一个开源的时间序列数据库,能应付极高的写和查询并发数,主要用于存储大规模的时间戳数据(每条记录自动附加时间戳),如 DevOps 监控数据、应用系统运行指标数据、物联网感应器采集的数据及实时分析的结果数据等...Neo4j Neo4j 是一个用 Java 语言开发的图数据库,它将结构化数据存储在由“点—边”组成的网络(数学术语叫“图”)上而不是表中。...Cassandra 被称为“列数据库”,这里的“列”不是指关系数据库中一个表中的列,而是由“键—值”对组成的列表(语法与 Python 语言中的列表相同),如: Cassandra 中一行数据语法是“

    5.4K10

    MariaDB 权限概述

    MariaDB 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定允许的权限.MariaDB用户可以分为普通用户和ROOT用户.ROOT用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户的密码等管理权限...◆USER表◆user表是MariaDB中最重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局的,MariaDB中user表一共有42个字段,用户列可分为4类,分别是用户列,权限列,安全列和资源控制列...Host、User、Password,分别表示主机名、用户名和密码.其中User和Host为User表的联合主键,当用户与服务器之间建立连接时,输入的账户信息中的用户名称、主机名和密码必须匹配User表中对应的字段...,只有3个值都匹配的时候,才允许连接建立.这3个字段的值就是创建账户时保存的账户信息,修改用户密码时,实际就是修改user表的Password字段的值.权限列:权限列的字段决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作....在MariaDB数据库中,有两种方式创建新用户:一种是使用CREATE USER或GRANT语句,另一种是直接操作MariaDB授权表,最好的方法是使用GRANT语句,因为这样更精确,如果使用create

    2.5K40

    MariaDB 数据类型

    数据库表由多列字段构成,每一个字段指定了不同的数据类型.指定字段的数据类型之后,也就决定了向字段插入的数据内容,例如,当要插入数值的时候,可以将它们存储为整数类型,也可以将它们存储为字符串类型.不同的数据类型也决定了...表中是date类型的x字段,并插入一条数据....,值2.....值n): 在定义的数值列表中返回最小的那个元素的数值 MariaDB [lyshark]> select least(10,0) , least(1,2,3,4,5,6,7,8,9) ,...,值2....值n): 在定义的数值列表中返回最大的那个元素的数值 MariaDB [lyshark]> select greatest(10,0) , greatest(1,2,3,4,5,6,7,8,9...IN (值1,值2.....值n)): in运算符判断指定数值是否在指定的一个列表里,有则返回1无则返回0,而not in运算符恰恰相反.

    1.2K10

    MariaDB与MySQL比较

    在MariaDB中,有如下针对MariaDB与MySQL两种数据库比较的官方说法: MariaDB 和 MySQL 是世界上部署最广泛的两个开源关系数据库,虽然它们有共同的祖先,并通过 MySQL 协议保持兼容性...(MySQL 客户端可以连接到 MariaDB,反之亦然),但它们已经发展了自己的 方式,成为具有独特功能和不同产品愿景的独立数据库。...时态表 MariaDB 是唯一实现系统版本控制、应用程序时间段和双时态表的开源数据库,使开发人员能够根据之前的时间点查询数据,并且 DBA 能够在数据更改后审计和/或恢复数据。...联邦 MariaDB 和 MySQL 可以访问其他 MariaDB/MySQL 数据库中的表,但只有 MariaDB 可以联合异构数据库,包括 Oracle 数据库、Microsoft SQL Server...列式存储格式 MariaDB 支持行和列存储。 它可以部署为交互式、即席分析的数据仓库或混合事务/分析处理 (HTAP) 数据库,将当前数据存储在行存储中,将历史数据存储在列中。

    3.5K40

    MySQL 权限与备份管理(精简笔记)

    ◆USER表◆ user表是MariaDB中最重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局的,MariaDB中user表一共有42个字段,用户列可分为4类,分别是用户列,权限列,安全列和资源控制列...Host、User、Password,分别表示主机名、用户名和密码.其中User和Host为User表的联合主键,当用户与服务器之间建立连接时,输入的账户信息中的用户名称、主机名和密码必须匹配User表中对应的字段...,只有3个值都匹配的时候,才允许连接建立.这3个字段的值就是创建账户时保存的账户信息,修改用户密码时,实际就是修改user表的Password字段的值....(N,Y) NO DB表用户列有3个字段,分别是Host、User、Db标识从某个主机连接某个用户对某个数据库的操作权限,这3个字段的组合构成了db表的主键.host表不存储用户名称,用户列只有2个字段...的用户进行权限验证所有用户的权限都存储在MariaDB的权限表中,不合理的权限规划会给MariaDB服务器带来安全隐患,数据库管理员要对所有用户的权限进行合理规划管理.

    1.3K20

    一条 SQL 查询语句是如何执行的?

    比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时 mysql> select from T where ID=10; 我们只看到一个输入语句,返回一个结果,却不知道这个 SQL 语句在...t1 join t2 using(ID) where t1.c=10 and t2.d=20; 可以先从t1 里面取出 C=10 的记录的ID值,再根据 ID 值关联到表 t2,再判断 t2 里面的...d 值是否等于 20 可以先从表 t2 里面提取 d= 20的记录的ID值,再根据 ID 值关联t1 ,再判断 t1 里面 c 的值是否等于10 这两种执行方法的逻辑结果是一样的,但是执行的效率会有不同...比如我们这个例子中的表 T 中,ID 字段没有索引,那么执行器的流程如下: 调用InnoDB引擎接口取这个表的第一行,判断ID值是不是10,如果不是则跳过,如果是则将这行存在结果集中 调用引擎接口取“下一行...你会在数据库的慢查询日志中看到一个 rows_examined的字段,表示这个语句执行过程中扫描了多少行。这个值就是在执行器每次调用引擎获取数据行的时候累加的。

    80810

    全网最全 | MySQL EXPLAIN 完全解读

    例如:explain select 1 15 Not exists MySQL能对LEFT JOIN优化,在找到符合LEFT JOIN的行后,不会为上一行组合中检查此表中的更多行。...如果MySQL在t2中找到一个匹配的行,它会知道t2.id永远不会为NULL,并且不会扫描t2中具有相同id值的其余行。...你可以通过在EXPLAIN语句后紧跟一个SHOW WARNING语句,并分析结果中的Message列,从而查看何时对该查询执行了反联接转换。...index map N索引的编号从1开始,按照与表的SHOW INDEX所示相同的顺序。索引映射值N是指示哪些索引是候选的位掩码值。例如0x19(二进制11001)的值意味着将考虑索引1、4和5。...但是,对于写操作,你需要四个搜索请求来查找在何处放置新的索引值,然后通常需要2次搜索来更新索引并写入行。 前面的讨论并不意味着你的应用性能会因为log N而缓慢下降。

    1.8K20

    MariaDB 表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位,数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的、每一行代表一条唯一的记录,每一列代表记录中的一个域.创建数据表在创建完数据库之后...,它可以是一列或者多列.一个表可以有一个或多个外键,外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值.外键:首先它是表中的一个字段,它可以不是本表的主键...,但对应另外一个表的主键.外键主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行.外键的作用是保持数据的一致性、完整性.主表(父表):两个具有关联关系的表,相关联字段中,...◆存储引擎是MySQL中的数据存储在文件或者内存中时采用的不同技术实现,可以根据自己的需要,选择不同的引擎,甚至可以为每一张表选择不同的存储引擎.MySQL中主要存储引擎有:MyISAM、InnoDB、...,需要注意的是,在删除表的同时,表的定义和表中的所有数据均会被删除,因此再删除之前,最好做好备份,删除的SQL语法如下:drop table [if exists] 表1,表2,.....表n#参数 if

    1.4K20

    腾讯云数据库TDSQL精英挑战赛--决赛Q&A(实时更新)

    在实际应用中需要根据场景来决定,例如:wal在应用中所占的开销。 持久内存的延迟在几百纳秒级,Nand SSD的延迟在几十微秒以上。 Q:Libpmem库部分:map的flag能详细讲一下吗?...DELETE需要被过滤掉; 2、对于无主键的表,可视为包含除updated_at字段外所有其他字段组成的隐式主键,同时应用规则1; 3、对于同一个实例的BINLOG事件,在主键和时间戳相同的情况下,在BINLOG...文件中后出现的值应该覆盖前面的值; 4、对于来自不同实例的,主键相同并且时间戳相同的记录,冲突情况下以参数传递的第一个实例为准。...; 2、对于无主键的表,可视为包含除updated_at字段外所有其他字段组成的隐式主键,同时应用规则1; 3、对于同一个实例的BINLOG事件,在主键和时间戳相同的情况下,在BINLOG文件中后出现的值应该覆盖前面的值...; 4、对于来自不同实例的,主键相同并且时间戳相同的记录,冲突情况下以参数传递的第一个实例为准。

    1.7K130

    为什么MariaDB更优于MySQL

    第一个版本于1995年5月23日发布。MySQL是中的”My“取自联合创始人Monty Widenius女儿的名字。...另一个与前任不同的特点是专注于安全。MariaDB的内置功能包括操作和格式化文本,业务和统计计算,记录时间顺序信息, MariaDB服务器是世界上最流行的开源数据库之一。...MariaDB还提供了很多在MySQL中不可用的操作和命令,并消除/取代了对性能产生负面影响的功能。 其他功能还包括多源复制,融合IO优化,表发现和联机更改表。...优化的存储格式:存储在JSON列中的JSON文档被转换为允许快速读取文档元素的内部格式。当服务器稍后必须读取以这种二进制格式存储的JSON值时,不需要从文本表示中解析该值。...二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需读取文档中的所有值。 另一方面,MariaDB Server 10.2引入了一整套用于读写JSON文档的24个函数。

    13.3K62

    MySQL 之基础命令(精简笔记)

    ,每个外键值必须等于另一个表中主键的某个值. 1.创建一个tb_dept并指定为主表,把tb_emp指定为从表,将两表指定字段相关联....: 新建一个person_old表,其表结构和person相同,我们将person_old表中的内容全部迁移到person中去,SQL语句如下: 1.创建一个person_old表,并插入测试字段: MariaDB...,值2.....值n): 在定义的数值列表中返回最小的那个元素的数值 MariaDB [lyshark]> select least(10,0) , least(1,2,3,4,5,6,7,8,9) ,...,值2....值n): 在定义的数值列表中返回最大的那个元素的数值 MariaDB [lyshark]> select greatest(10,0) , greatest(1,2,3,4,5,6,7,8,9...IN (值1,值2.....值n)): in运算符判断指定数值是否在指定的一个列表里,有则返回1无则返回0,而not in运算符恰恰相反.

    1.8K10

    Gorm框架学习--入门

    默认情况下,GORM 使用 ID 作为主键,使用结构体名的 蛇形复数 作为表名,字段名的 蛇形 作为列名,并使用 CreatedAt、UpdatedAt 字段追踪创建、更新时间 遵循 GORM 已有的约定...要使用不同名称的字段,您可以配置 autoCreateTime、autoUpdateTime 标签 如果您想要保存 UNIX(毫/纳)秒时间戳,而不是 time,您只需简单地将 time.Time 修改为...在创建时该字段值为零值或者在更新时,使用当前时间戳秒数填充 Updated int64 `gorm:"autoUpdateTime:nano"` // 使用时间戳填纳秒数充更新时间 Updated...// 使用时间戳秒数填充创建时间 } ---- 嵌入结构体 对于匿名字段,GORM 会将其字段包含在父结构体中,例如: type User struct { gorm.Model Name string..., // 重命名索引时采用删除并新建的方式,MySQL 5.7 之前的数据库和 MariaDB 不支持重命名索引 DontSupportRenameColumn: true, // 用 `change

    2.1K10

    LAMP的搭建与MariaDB的基础使用

    即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。...key 一个表中的某字段可填入数据取决于另一个表的主键已有的数据; 3.非空约束:not null 约束强制列不接受 NULL 值。...5.唯一约束:unique 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL;一个表可以存在多个 6.检查约束:check 约束用于限制列中的值的范围。...如果对单个列定义 CHECK 约束,那么该列只允许特定的值。 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。...# 日期:DATE # 时间:TIME # 日期时间:DATETIME # 时间戳:TIMESTAMP # 年份:YEAR(2), YEAR(4) #

    2.3K10
    领券