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

Mysql学习笔记,持续记录

可能原因包括没有建立索引索引失效),查询若使用了覆盖索引(select 后要查询字段刚好和创建索引字段完全相同),则该索引仅出现在key列表。...key_len显示值为索引字段最大可能长度,并非实际使用长度,即key_len是根据表定义计算得,不是通过表内检索出。 ref 显示索引那一被使用了,如果可能的话,最好是一个常数。...包含(str)结果,返回结果为null记录 假如字符串str由N个子链组成字符串列表strlist ,则返回值范围在 1 到 N 之间。...一个字符串列表就是一个由一些被 ‘,' 符号分开子链组成字符串。如果第一个参数是一个常数字符串第二个是type SET,则FIND_IN_SET() 函数被优化,使用比特计算。...外创建失败几种原因 外字段与关联字段类型不匹配(包括编码格式不匹配) 外名字是一个已经存在键值,要保证名字唯一 mysql引擎引起创建不能保存或者不能发挥作用情况,mysql

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

REST API有关幂等性等11条最佳实践

规则 #3:不要在 url 添加 .json 其他扩展名 这似乎是 Rails 某种默认行为,因此它间歇性地出现在公共 API 。Shopify在这里感到羞耻。...映射结构很糟糕: 关键信息是冗余,会给线路增加噪音 不必动态给使用类型语言工作的人带来了麻烦 无论您认为“自然”是什么,都可以改变,或者客户可能想要不同分组 大多数语言中,将对象数组转换为映射是一件简单事...始终使用字符串作为对象标识符,即使您内部表示形式(即数据库类型)是数字。...字符串可以对复合进行编码。数字 ID 给未来开发人员带来了束缚。 我曾经开发过一个系统(由于数据库合并),该系统必须通过给一组正 ID 和其他负 ID 来分段数字 ID 范围。...如果将 404 作为成功处理,堆栈失败返回 404,作业就会从队列删除,删除也不会传播。我现实生活中就遇到过这种情况。

19520

快速理解HBase和BigTable

有序 与大多数Map实现不同,Hbase / BigTable/值对按严格字母顺序保存。...之前JSON示例添加一个维度: ? 在上面的例子,您现在会注意到每个都指向一个有两个Map:“A”和“B”。从此处开始,我们将顶层/映射(key/map)称为“行”。...此外,BigTable / Hbase命名法,“A”和“B”映射(mappings)将被称为“族”。 创建表时会指定族,以后很难无法修改。...请注意,显示两行,“A”族有两:“foo”和“bar”,“B”族只有一,其限定符为空字符串(“”)。...每个可能有自己规则,确定保留给定单元格版本数量(单元格由其rowkey / column键值对标识)大多数情况下,应用程序将只询问给定单元格数据,指定时间戳。

1.2K21

Mysql 架构和索引

字段类型选择 慷慨是不明智 相关表中使用相同数据类型,因为可能进行join 选择标示符:整数通常是最佳选择,尽量避免使用字符串 大致决定数据类型(数字字符串,时间等) 选择存储更小类型,选择更简单类型...(如整数优于字符串),选择mysql内建时间类型不是字符串,选择整数不是字符串保存IP 尽量避免使用NULL:任何包含null值都将不会被包含在索引。...字符串 binary 和 varbinary:保存二进制字符串,他们保存是字节不是字符,填充是\0不是空格 blob 和 text: 不能索引这些类型完整长度,也不能为排序使用索引 排序时只按照...常见于主键唯一索引扫描。 这是最好连接类型。它用在索引所有部分都用于做连接并且这个索引是一个primary key unique 类型。eq_ref可以用于进行"="做比较时检索字段。...Index) 利用索引返回select列表字段,不必根据索引再次读取数据文件 Using where Using temporary 表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询

1.4K90

MySQL 之 JSON 支持(一)—— JSON 数据类型

与将 JSON 格式字符串存储字符串相比,JSON 数据类型提供了以下优点: 自动验证存储 JSON JSON 文档,无效文档会产生错误。 优化存储格式。...JSON部分更新 MySQL 8.0 ,优化器可以执行 JSON 部分就地更新,不是删除旧文档后再将新文档全部写入列。...区分存储 JSON 部分更新与将行部分更新写入二进制日志是很重要。对 JSON 完整更新可能作为部分更新记录在二进制日志。...JSON 文档插入引号字符(" ')可能是必须希望。...“第14.3节 表达式评估类型转换”讨论了比较原生 MySQL 数字类型规则,但比较 JSON数字规则有些不同: 分别使用原生 MySQL INT 和 DOUBLE 数字类型之间比较

1.3K30

系统设计:URL短链设计

使用base64编码,6个字母长密钥将产生64^6=~687亿个可能字符串使用base64编码,8个字母长密钥将产生64^8=~281万亿个可能字符串 对于68.7B唯一字符串,我们假设六个字母就足以满足我们系统...既然我们每个短只有8个字符空间,那么我们将如何选择我们呢?我们可以用前6(8)个字母作为钥匙。但这可能会导致密钥重复,在此基础上,我们可以从编码字符串中选择一些其他字符交换一些字符。...如果我们需要一个字节来存储一个字母数字字符,我们可以将所有这些存储: 6(每个字符数)*68.7B(唯一)=412 GB。 KGS不是单点故障?是的。...我们函数将把URL随机分配到不同分区(例如,我们函数总是可以将任何映射到[1…256]之间数字),这个数字将代表我们存储对象分区。...假设我们将数据存储NoSQL宽数据库(如Cassandra),存储权限将是“哈希”(KGS生成”)。这些将存储那些有权查看URL用户用户名。

6K165

FAQ系列之Phoenix

我可以 Phoenix 表中看到单个单元格时间戳这是常用东西? 您可以将 HBase 本机行时间戳映射到 Phoenix 。...请记住, HBase ,您不会对可能 KeyValues 结构进行建模。这是您在 Phoenix 中指定超出表和信息。...VARCHAR(即字符串),“f1”.val 声明您 HBase 表将包含具有族和限定符“f1”:VAL 键值,并且它们值将是一个 VARCHAR。...对于非非前导列上过滤器,您可以在这些列上添加索引,通过制作带有索引副本作为一部分,从而获得与对进行过滤等效性能。...您可能知道,数据作为 KeyValues 存储 HBase ,这意味着为每个值存储完整。这也意味着除非存储了至少一,否则根本不存储行

3.2K30

MySQL全字段类型概览

计算机用二进制存储数据,每个bit只可能是01,是没有小数点,所以为了存储带小数实数,就出现了定点数和浮点数。 浮点数:实数以指数形式存放在存储单元。类似于科学计数法a×10^n。...MySQL 8.0.17开始不建议使用整数显示宽度这个属性了,未来版本可能不支持这个属性。 如果在定义一个数字类型指定了ZEROFILL,MySQL会为这个自动加上UNSIGNED属性。...与将JSON格式字符串存储字符串相比,JSON数据类型提供了以下优点: 自动验证JSON文档存储JSON。无效文档会产生错误。 优化存储格式。...存储JSONJSON文档被转换为一种内部格式,允许对文档元素进行快速读取访问。当稍后服务器必须读取以这种二进制格式存储JSON值时,不需要从文本表示解析该值。...二进制格式结构使服务器能够通过数组索引直接查找子对象嵌套值,不必读取文档它们之前之后所有值。

3.1K20

Django数据库查询优化与AJAX

数据库设计三大范式 第一范式(1NF):不可再分(原子性) 每一属性都是不可再分,两属性相近相似一样,应尽量合并属性一样,确保不产生冗余数据。...第二范式(2NF):属性完全依赖路主键(唯一性) 第二范式是第一范式基础上建立起来,也就是第二范式要求数据库表每个实例行必须可以被唯一区分,也就是一张表至少有一个主键来区分每一条记录。...orm相关数据库查询优化 惰性查询 惰性查询指当我们只查数据库不是用这些数据时,Django不会执行查询数据库代码,目的是减少不必数据库操作,降低数据库压力。...我们可以用0、1等数字代表男女等字段可能情况,将数字存入表(可以是数字也可以是字符串,通常用-1表示数据短缺或者数据丢失),取出时候如果存储数字提前定义好关系中会,则会取出对应关系字符串,...stringfy和parse方法 JavaScript关于JSON对象和字符串转换两个方法: JSON.parse(): 用于将一个 JSON 字符串转换为 JavaScript 对象(json只认双引字符串格式

2.4K20

Redis 6.0新特性----RESP3协议

剩下字符串是错误消息本身。错误代码是通用。错误代码有助于客户机区分不同错误条件,不必错误消息中进行模式匹配,这可能会改变。...然而,诸如命令行界面(例如redis-cli)之类交互式客户机知道输出必须按原样呈现给人类用户,不必引用字符串。...由于许多编程语言缺少本机集类型,一个明智选择是返回一个散,其中字段是集类型元素,值只是真值任何其他值。...例如,他们将尝试某个映射、散Set数据类型添加每个read元素,再次添加相同元素将替换旧副本,或者将无声地失败,从而保留旧副本。...[2039123,9543892],但是属性指定了原始命令中提到流行程度(请求频率),作为从0到1浮点数(至少示例,实际Redis实现可能不同)。

1.6K20

难道程序员只把Redis当缓存?3大场景助你完美收割Redis实战开发

对String操作数据内部分别有字符串数字、二进制区分,区分后选择也就可以更加具体选择到项目中出现这些类型方案 Redis字符串,场景化有那些 字符串是项目使用最多数据类型,毕竟这个网站数据最多呈现就是中文...这也是大家需要明白。 3、分布式锁 分布式锁,是一种思想,它实现方式有很多。是为了解决并发编程,通过锁机制,来避免由于竞争造成数据不一致问题。...NX 代表只不存在时,才对进行设置操作。 PX 5000 设置过期时间为5000毫秒。...分布式id生成器:复杂分布式系统,往往需要对大量数据和消息进行唯一标识,数据库自增ID显然不能满足需求。因为并发写时候可能会导致锁表问题,还有效率也提升不起来。...通过归类于各种数据类型结构,在对应到实际开发场景里面。选择合适工具。做到有理可寻。不是凭借感觉来使用。毕竟开发严谨是大于感觉。如果做好归类于每个数据特点,进行开发就显得很简单明了。

75420

一、数据库表设计规范「建议收藏」

2.第二范式 确保表都和主键相关 每个表只描述一件事 主要针对联合主键而言,不存在部分依赖,每一都跟联合主键有关系,而与联合主键其中一个无关系 比如要设计一个订单信息表,因为订单可能会有多种商品...第三范式需要确保数据表,每一数据都和主键直接相关,不能间接相关解决间接相关,把不直接相关再建一张表,采用外形式将两张表关联....这样查询订单信息时候,就可以使用客户编号来引用客户信息表记录,也不必订单信息表多次输入客户信息内容,减小了数据冗余。...这是因为引擎处理查询和连接时会逐个比较字符串每一个字符,而对于数字型而言只需要比较一次就够了。...只有存储字符串长度几乎相等,使用 char 定长字符串类型。 (7)不得使用外与级联,一切外概念必须在应用层解决。

1.6K20

Nano编辑器基础使用

nano 命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行输入过长内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统配置文件,自动断行就会使本来只能写在一行上内容折断成多行了...,有可能造成系统不灵了。...-R --restricted 限制模式 -S --smooth 按行滚动不是半屏 -T <#数...#常用快捷 CTRL+G #命令帮助 CTRL+O #保存所做更改以及另存为; CTRL+c #取消返回。...CTRL+C #说明目前光标所处行数与数等信息; CTRL+X #关闭当前文件缓冲区 / 离开 nano 退出时候会询问是否需要保存修改,输入Y确认保存,输入N不保存 CTRL+R #从其它文件读取字符串到文件

1.9K40

MySQL基础及原理

即将数据以0、1形式保存在内存,一旦断电,数据就会丢失。 即持久化就是将内存数据保存到硬盘中加以“固化”,该过程是通过各种关系型数据库实现。...否则,你可能毫无目的地在网络上传输大量值。 ③ 把BLOBTEXT分离到单独。...Set default方式 (可视化工具SQLyog可能显示空白):父表有变更时,子表将外设置成一个默认值,但Innodb不能识别。 如果没有指定等级,就相当于Restrict方式。...答:没有 MySQL 里,外约束是有成本,需要·消耗系统资源·。对于大并发 SQL 操作,有可能会不适合。 比如大型网站中央数据库,可能会 因为外约束系统开销变得非常慢 。...一般不用加@,需要指定类型 二十一、定义条件与处理程序 定义条件 是事先定义程序执行过程可能遇到问题, 处理程序 定义了遇到问题时应当采取处理方式,并且保证存储过程函数遇到警告错误时能继续执行

3.8K20

了解HBase与BigTable

论文继续解释到: Map 由行以及时间戳进行索引, Map 每个值都是无解释字节数组。...用户标记表存储数据行,数据行中有一个有序key和任意数量。这张表存储是稀疏,所以如果用户喜欢的话,甚至可以同一张表每行疯狂存储差异巨大。...从这里开始,我们将顶级/Map对称为行(Row)。同样, BigTable/HBase 命名,A和 B 映射称为族。表族是创建表时指定,以后很难无法修改。...添加新族代价可能也很昂贵,因此最好预先指定所有需要族。 幸运是,族可以具有任意数量,用限定符(Qualifier)标签(Label)列表示。...A 族有两:foo 和 bar, B 族只有一,其限定符为空字符串

1.8K41

Nano编辑器基础使用

nano 命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行输入过长内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统配置文件,自动断行就会使本来只能写在一行上内容折断成多行了...,有可能造成系统不灵了。...-R --restricted 限制模式 -S --smooth 按行滚动不是半屏 -T <#数...#常用快捷 CTRL+G #命令帮助 CTRL+O #保存所做更改以及另存为; CTRL+c #取消返回。...CTRL+C #说明目前光标所处行数与数等信息; CTRL+X #关闭当前文件缓冲区 / 离开 nano 退出时候会询问是否需要保存修改,输入Y确认保存,输入N不保存 CTRL+R #从其它文件读取字符串到文件

1.7K10

干货:手把手教你用Python读写CSV、JSON、Excel及解析HTML

然而,你将会认识到,我们收集数据某些方面是有瑕疵,那么,某些行包含一个字母而非数字时,文本到整数转换会失败,Python会抛出一个异常。...我们不希望存,所以要指定index=False。 用索引可以很方便地辨认、校准、访问DataFrame数据。索引可以是一连续数字(就像Excel行号)日期;你还可以设定多索引。...这是个嵌套、类似字典结构,以逗号为分隔符,存储键值对;与值之间以冒号分隔。JSON格式独立于具体平台(就像XML,我们将在 用Python读写XML文件介绍),便于平台之间共享数据。...原理 这段代码与前一节类似。首先,指定JSON文件名字——我们将其存于r_filenameJSON字符串。...我们例子,我们还指定了index=False,这样不会保存索引;默认情况下,.to_excel(...)方法保存A索引。 4.

8.3K20

高性能MySQL (一):Schema与数据类型优化

MySQL存储枚举时非常紧凑,会根据列表值数量压缩到一个或者两个字节。MySQL在内部会将每个值列表位置保存为整数,并且.frm文件中保存数字-字符串”映射关系“查找表”。...标识可能在另外作为外使用,所以为标识选择数据类型时,应该选择跟关联表对应列一样类型。...二、MySQL schema设计陷阱 虽然有一些普遍设计原则,但也有一些问题是由MySQL实现机制导致,这意味着有可能犯一些只MySQL下发生特定错误。...变相枚举 枚举(ENUM)允许存储一组定义值单个值,集合(SET)则允许存储一组定义值一个多个值。有时候这可能比较容易导致混乱。...相反,反范式化数据库,信息是冗余可能会存储多个地方。 3.1 范式优点和缺点 当为性能问题寻求帮助时,经常会被建议对schema进行范式化设计,尤其是写密集场景。这通常是个好建议。

1.1K40

DBA-MySql面试问题及答案-上

8.char & varchar 保存和检索方式不同。它们最大长度和是否尾部空格被保留等方面也不同。存储检索过程不进行大小写转换。...关系数据库,索引是一种单独、物理对数据库表中一值进行排序一种存储结构,它是某个表中一若干集合和相应指向表物理标识这些值数据页逻辑指针清单。...最适合索引是出现在WHERE子句中连接子句中指定不是出现在SELECT 关键字后选择列表。 使用惟一索引。考虑某中值分布。...对于惟一值,索引效果最好,具有多个 重复值,其索引效果最差。 使用短索引。如果对串列进行索引,应该指定一个前缀长度,只要有可能就应该这做样。...修改表内容时,索引必须进行更新,有时可能需要重构, 因此, 索引越多,所花时间越长。 如果有一个索引很少利用从不使用,那么会不必要地减缓表修改速度。

28620
领券