《叶问》第7期

简介: 《叶问》是知数堂新设计的互动栏目,不定期给大家提供技术知识小贴士,形式不限,或提问、或讨论均可,并在当天发布答案,让大家轻轻松松利用碎片时间就可以学到最实用的知识点。

2018年8月9日,周四

MySQL的表中有唯一索引,设置unique_checks为0时,还能否写入重复值?

1、首先,即便设置unique_checks=0,也无法往唯一索引中写入重复值。
2、其次,设置unique_checks=0的作用在于,批量导入数据(例如load data)时,在确保导入数据中无重复值时,无需再次检查其唯一性,加快导入速度。
3、所以,unique_checks=0并不是允许唯一约束失效,而是再批量导数据时不再逐行检查唯一性。

2018年8月15日,周六

某人曰,在数据检索的条件中使用!=操作符时,存储引擎会放弃使用索引。 理由:因为检索的范围不能确定,所以使用索引效率不高,会被引擎自动改为全表扫描。你认可他的说法吗?

1、答:通常情况下,这个说法是正确的。当然,也有特殊情况,话不能说绝对了。
有一个测试表共80万条数据,其中type列只有1、2两个值,分别占比97%和3%。 这种情况下,查询条件 WHERE type != 1,是有可能也可以走索引的。

下面是两个SQL的执行计划:
mysql> desc select * from t1 where type = 1G
1. row
id: 1
select_type: SIMPLE
table: t1
partitions: NULL
type: ref
possible_keys: type
key: type
key_len: 4
ref: const
rows: 399731
filtered: 100.00
Extra: NULL
mysql> desc select * from t1 where type != 1G
1. row
id: 1
select_type: SIMPLE
table: t1
partitions: NULL
type: ref
possible_keys: type
key: type
key_len: 4
ref: const
rows: 10182
filtered: 100.00
Extra: NULL

type数据分布
mysql> select type, count(*) as cnt from t1 group by type order by cnt;
+------+--------+
| type | cnt |
+------+--------+
| 2 | 38304 |

2018年8月17日,周一

Redis集群的slot迁移是如何实现的?

1、答:迁移源slot设置为migrating 状态,迁移目标slot设置为importing状态。
2、在内部用dump & restore命令,把数据迁移到目标节点,迁移结束之后,移除migrating和importing状态。
3、在迁移过程中如果有数据访问,如果数据没迁移到目标节点,那么直接返回结果,如果迁移到目标节点,那么给客户端返回ASK重定向。

2018年8月27日,周一

在大表执行ddl的过程中,若临时中断,会发生什么状况,需要特别处理吗 ?

前提说明:MySQL5.7.23、innodb表、“双1”

1、添加/删除列,采用copy的方式
1.1、ctrl+c。在当前session中,手动执行ctrl+c。无影响,并且会自动删除产生的临时文件。
1.2、kill -9。在执行ddl的时候,服务器发生意外宕机或者手动执行kill -9。待MySQL启动后,则会自动执行InnoDB Recovered流程。并且不会删除产生的临时文件,需要手工处理。
2、添加/删除索引,采用INPLACE方式
2.1、ctrl+c,同1.1
2.2、kill -9。不会删除临时文件,也不会执行InnoDB Recovered流程并且报错 Operating system error number 2 in a file operation ....OS error: 71

在开始执行alter table的过程中,在没有结束的时候,并不会写入到binglog文件中。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
JSON 网络协议 数据格式
Docker(35)- docker inspect 命令详解
Docker(35)- docker inspect 命令详解
1823 0
Docker(35)- docker inspect 命令详解
|
7月前
|
传感器 存储 安全
嵌入式进阶指南:从“代码搬运工”到“系统架构师”的跃迁之路
教程来源 https://app-a87ujc988w01.appmiaoda.com/ 《嵌入式进阶指南》助力开发者从“代码搬运工”跃升为“系统架构师”。涵盖性能调优、RTOS内核剖析、嵌入式安全、系统架构设计及功耗管理五大核心维度,融合RISC-V、TinyML等前沿趋势,提供实战路径与深度原理。
|
存储 前端开发 Java
如何开发供应商管理系统中的询报价板块(附架构图+流程图+代码参考)
本文介绍了供应商管理系统中的询报价板块,涵盖创建询价需求、供应商报价、比价分析、核价等核心流程。通过系统化管理,企业可提升采购效率与透明度,优化供应商选择,降低采购成本。
|
9月前
|
弹性计算 负载均衡 Linux
使用MTR工具测试阿里云服务器ECS的网络链路分析,2026图文教程
本文介绍如何使用MTR工具对阿里云ECS进行网络链路分析,通过图文教程详解安装、命令参数、结果解读及常见异常场景(如丢包、延迟、环路等),帮助用户精准定位网络问题。
|
10月前
|
XML 存储 缓存
深入了解 JSP
JSP(JavaServer Pages)是基于Java的服务器端技术,用于生成动态网页。它将Java代码嵌入HTML,通过编译为Servlet实现动态内容输出。本文详解JSP基本结构、工作原理、常用标签、表单处理及JSTL应用,并分享避免脚本冗余、提升性能等最佳实践,助你高效开发可维护的Web应用。
|
SQL 分布式计算 IDE
如何在IDE中通过Spark操作Hive
通过以上方法和代码示例,你可以在IDE中成功通过Spark操作Hive,实现大规模数据处理和分析。确保理解每一步的实现细节,应用到实际项目中时能有效地处理各种复杂的数据场景。
850 28
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
1321 5
Mysql(3)—数据库相关概念及工作原理
|
自然语言处理 监控 BI
ERP系统中的多语言与多币种支持
【7月更文挑战第25天】 ERP系统中的多语言与多币种支持
1110 3
|
机器学习/深度学习 自然语言处理 安全
中文竞技场(MS)大模型评测
分别从写作创作、代码相关、知识常识、中文游戏、人类价值观、NLP专业领域6大领域测评不同模型的效果。
97734 14
中文竞技场(MS)大模型评测
|
并行计算 计算机视觉 异构计算
ModelScope问题之官方模型demo运行时候报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
1081 3