这篇教程是帮助你回答:什么是MySQL?以及告诉你为何 MySQL 是世界上最流行的开源数据库的原因。...在了解MySQL之前,要先了解database和SQL,若你已经了解它俩,则可以直接跳到:什么是MySQL?...数据库无处不在,那数据库到底是什么呢?根据定义,一个数据库只不过是数据化的集合。 数据之间有关联是很自然的,比如:一个商品隶属于一个商品分类同时关联很多标签。因此,我们称之为关系数据库。...现在,你了解了数据库和SQL,是时候回答下一个问题… MySQL是什么? My是 MySQL的联合创始人女儿 Monty Widenius的名字。 MySQL就是My 和 SQL 的组合。...如果你建设网站或者Web应用,MySQL是很好的选择。MySQL是LAMP的必要组件,其中包括Linux、Apache、MySQL、PHP。
什么是索引? 假设我们有一张数据表 employee(员工表),该表有三个字段(列),分别是name、age 和address。...问题来了:即然不管读还是写,Hash这种类型比Tree树这种类型都要更快一些,那为什么MySQL的开发者既使用Hash类型做为索引,又使用了BTREE呢?...索引类型 MySQL中有以下索引类型: UNIQUE唯一索引 该索引其含义是被标定义唯一索引的列,不允许出现重复的数据, 但可以有NULL值。...结果是走的主键索引,并没有走idx_cid复合索引,于是结果很清晰了,MySQL中的复合索引有顺序,且很重要,查询条件的顺序不能随意乱写。...,经常出现“翻车”导致“车毁人亡”的事故,为什么?
什么是分组加密呢?我们来看看下面这张图: AES算法在对明文加密的时候,并不是把整个明文一股脑加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。...替代的依据是什么呢?依据一个被称为S盒(Subtitution Box)的16X16大小的二维常量数组。...1.ECB模式 ECB模式(Electronic Codebook Book)是最简单的工作模式,在该模式下,每一个明文块的加密都是完全独立,互不干涉的。 这样的好处是什么呢?...IV是做什么用的呢?它的作用和MD5的“加盐”有些类似,目的是防止同样的明文块始终加密成同样的密文块。 从图中可以看出,CBC模式在每一个明文块加密前会让明文块和一个值先做异或操作。...这样以来,相同的明文块加密出的密文块显然是不一样的。 CBC模式的好处是什么呢? 安全性更高 坏处也很明显: 1.无法并行计算,性能上不如ECB 2.引入初始化向量IV,增加复杂度。
容器的一般概念是相当模糊的。什么是对的通常取决于上下文,但上下文本身并不总是明确给出。例如,有一种常见的说法,容器是 Linux 进程,或者容器不是虚拟机。...什么是开放容器计划 (OCI) Open Container Initiative (OCI) 是一个开放的治理结构,由 Docker 和其他容器行业的知名参与者于 2015 年建立,旨在表达围绕容器格式和运行时创建开放行业的标准...什么是 OCI 容器 那么,如今 OCI 是如何定义 Container 的呢? 标准容器是用于执行具有环境被隔离和资源受限制的进程环境。 为什么我们需要容器?...好的,我们可以用容器做什么? 可以使用标准容器工具创建、启动和停止;使用标准文件系统工具复制和快照;并使用标准网络工具下载和上传。...等等,什么?!虚拟机是容器??! 特别是,Linux 特定部分引入了(除其他外)pid、network、mount、ipc、uts 和用户命名空间、控制组和 seccomp。
各个组件的关系如下图所示: image.png 二.特性 1.集成易用 MySQL InnoDB集群紧密集成了MySQL Servers with Group Replication,MySQL Router...你可用在五分钟内利用MySQL Shell中的脚本化的管理API来创建及管理MySQL集群。...这提供了使MySQL数据库高度可用所需的所有内置机制。 3.弹性 通过组复制,一组服务器协调在一起形成一个组。组成员是动态的,服务器可以自愿或强制的地离开及随时加入。...8.通过MySQL Router为mysql客户机应用程序实现HA MySQL的路由器允许您轻松迁移您的独立的MySQL实例到本地分布式高可用集群而不影响现有的应用程序。...9.简单易用的MySQL shell MySQL Shell为所有MySQL相关的任务提供了一个直观、灵活、功能强大的接口。
什么是 SQL 语言?...SQL 是用于访问和处理数据的标准的计算机语言 不能通用的叫 方言 名称 功能 DML(数据操作语言) 添加,删除,修改,查询 DCL(数据控制语言) 用户,权限,事务 DDL(数据定义语言) 逻辑库
root@host# mysql -u root -p password; Enter password:******* mysql> use RUNOOB; Database changed mysql...MySQL 中使用 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型: mysql> ALTER TABLE testalter_tbl ADD...在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。...尝试如下实例: mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT; mysql> ALTER TABLE testalter_tbl CHANGE j...修改字段默认值 你可以使用 ALTER 来修改字段的默认值,尝试以下实例: mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql
什么是分库分表?...拆分策略有什么? 1....MyCat中间件 MyCat: MyCat是一个开源的、活跃的、分布式的数据库中间件 ,可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。...读写分离: MyCat支持读写分离,可以配置多个只读节点,将读请求分发到这些节点上,从而提高整体查询性能。...SQL解析和路由: MyCat能够解析SQL语句并将其路由到相应的分片节点,以确保数据操作被正确地分发到对应的数据库。
茉莉蜜茶only是阿里的前端程序媛,旨在做一些有意义的事情,Momomo[1]是她的掘金号,专栏文章质量也很高,感兴趣的童鞋关注下哦~ 前言 本文来自YouTube 上的一段 5 分钟的漫画版视频[2]...,有趣且简单的介绍了什么是深度学习,包括深度学习的应用、深度学习与机器学习和人工智能的不同之处、什么是神经网络以及如何训练它们来识别手写的数字。...什么是深度学习? Google 如何在短短几秒钟内将整个网页翻译成不同的语言,或者你的手机图库如何根据它们的位置对图片进行分组? 这些都是深度学习的结果。 ? 但什么是深度学习呢? ?...人工智能是一种使机器能够模仿人类行为的技术,机器学习是一种通过使用数据训练的算法来实现 AI 的技术,最后深度学习是一种受人脑结构(生物神经网络)启发的机器学习。...参考资料 [1]Momomo: https://juejin.im/user/5df79a0cf265da33ed41225d [2]YouTube 上的一段 5 分钟的漫画版视频: https://www.youtube.com
———————————— 题目: 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。...方法二:备忘录算法 在以上代码中,集合map是一个备忘录。当每次需要计算F(N)的时候,会首先从map中寻找匹配元素。...方法的时间复杂度是O(2^N)。 方法三:备忘录算法 在简单递归的基础上增加一个HashMap备忘录,用来存储中间结果。...HashMap的Key是一个包含金矿数N和工人数W的对象,Value是最优选择获得的黄金数。...方法的时间复杂度是 O(n * w),空间复杂度是(w)。需要注意的是,当金矿只有5座的时候,动态规划的性能优势还没有体现出来。
一.介绍 什么是索引?...为什么要有索引呢? 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。...索引的数据结构 任何一种数据结构都不是凭空产生的,一定会有它的背景和使用场景,我们现在总结一下,我们需要这种数据结构能够做些什么,其实很简单,那就是:每次查找数据时把磁盘IO次数控制在一个很小的数量级,...这就是为什么每个数据项,即索引字段要尽量的小,比如int占4字节,要比bigint8字节少一半。...这样就有更多的数据项数量了 这也是为什么b+树要求把真实的数据放到叶子节点而不是内层节点,一旦放到内层节点,磁盘块的数据项会大幅度下降,导致树增高。当数据项等于1时将会退化成线性表。
如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT命令,是无法实现的。...本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下: 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。...mysql> SHOW CREATE TABLE kxdang_tbl \G; *************************** 1. row **************************...mysql> CREATE TABLE `clone_tbl` ( -> `kxdang_id` int(11) NOT NULL auto_increment, -> `kxdang_title...mysql> INSERT INTO clone_tbl (kxdang_id, -> kxdang_title, ->
大家好,我是热心的大肚皮,皮哥。 什么是成本 mysql中在执行查询时有多种方案,它会选着代价最低的方案去执行查询,一条查询语句在mysql的执行成本分为两块。...Rows:表中的记录数,对于MyISAM来说,这个数是准的;对于InnoDB来说,这个是个估计值,但是计算成本时,以这个值为准。 Data_length:表占用的存储空间字节数。...I/O成本:97*1.0 + 1.1 = 98.1,97是页面数,1.0是加载的成本常 数,1.1是一个微调值,不用管。...CPU成本:9693*0.2 +1.0=1939.6,9693是行数,0.2是访问的 成本常数,1.0是微调值 总成本:98.1+1939.6 = 2037.7 计算使用不同索引执行查询的代价...使用uk_key2执行的查询成本 uk_key2对应的条件是 key2>10 and key2<1000,也就是扫描的索引区间是(10,1000)。
⭐本文介绍⭐如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT命令,是无法实现的。...本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。...mysql> SHOW CREATE TABLE kxdang_tbl \G;*************************** 1. row ***************************...mysql> CREATE TABLE `clone_tbl` ( -> `kxdang_id` int(11) NOT NULL auto_increment, -> `kxdang_title`...mysql> INSERT INTO clone_tbl (kxdang_id, -> kxdang_title, ->
文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 什么是DOM?...DOM(Document Object Model)文档对象模型,是语言和平台的中立接口。。 允许程序和脚本动态地访问和更新文档的内容。 为什么要使用DOM?...这里写图片描述 ---- HTML不同类型的节点之间都是有联系的: 位于一个节点之上的节点是该节点的父节点(parent) 一个节点之下的节点是该节点的子节点(children) 同一层次,具有相同父节点的节点是兄弟节点...,是我们经常用到的一个接口!.../** * @param flag true代表的是文件,false代表的是字符串 * @param xmldoc 要封装成DOM对象的字符串或文件 * @return 返回的是根节点的元素节点
茉莉蜜茶only是阿里的前端程序媛,旨在做一些有意义的事情,Momomo[1]是她的掘金号,专栏文章质量也很高,感兴趣的童鞋关注下哦~ 前言 这段机器学习基础视频[2]将帮助您了解什么是机器学习,机器学习有哪些类型...什么是机器学习? 我们知道人类从过去的经验中学习,机器遵循人类的指示 ? 如果人类能够训练机器从过去的数据中学习呢?...,但机器能做到的是智能化不需要人类参与。...所以在这里,速度是在 x 轴上,从缓慢到快速,而强度是在 y 轴上,从轻到重。我们看到保罗喜欢快节奏和高亢的歌曲,而他不喜欢慢节奏和轻柔的歌曲。 ?...但是当选择变得复杂时会发生什么?就像歌曲 B 的例子一样,当机器学习进入时,它会学习数据,建立预测模型,当新的数据点进来时,它可以很容易地预测它。数据越多,模型越好,精度越高。
图的概念 究竟什么是图呢?大家先来想一想咱们常用的互联网产品。 举个栗子,大家一定都用过微信,假设你的微信朋友圈中有若干好友:张三、李四、王五、赵六、七大姑、八大姨。 ?...同时,无向图对应的矩阵是一个对称矩阵,V0和V1有关联,那么V1和V0也必定有关联,因此A[0][1]和A[1][0]的值一定相等。 那么,有向图的邻接矩阵又是什么样子呢? ?...从图中可以看出,有向图不再是一个对称矩阵。从V0可以到达V1,从V1却未必能到达V0,因此A[0][1]和A[1][0]的值不一定相等。 邻接矩阵的优点是什么呢?...邻接矩阵的缺点是什么呢?占用了太多的空间。试想,如果一个图有1000个顶点,其中只有10个顶点之间有关联(这种情况叫做稀疏图),却不得不建立一个1000X1000的二维数组,实在太浪费了。...十字链表 十字链表长什么样呢?用最直观的示意,是下面这样: ?
什么是回表?为什么需要回表? 今天松哥就来和大家聊一聊这个话题。 1. 索引结构 要搞明白这个问题,需要大家首先明白 MySQL 中索引存储的数据结构。...B+Tree 是什么?...那你得先明白什么是 B-Tree,来看如下一张图: 前面是 B-Tree,后面是 B+Tree,两者的区别在于: B-Tree 中,所有节点都会带有指向具体记录的指针;B+Tree 中只有叶子结点会带有指向具体记录的指针...MySQL 服务器层完成的,并且不需要回表。...好啦,今天的主题是回表,现在大家明白什么是回表了吧?
专栏持续更新中:MySQL详解 一、背景 先要从 InnoDB 的索引实现说起,InnoDB 有两大类索引: 聚集索引(clustered index) 普通索引 (secondary index...) InnoDB 聚集索引和普通索引有什么差异?...二、什么是回表查询?...通俗的讲就是,如果索引的列在 select 所需获得的列中(因为在 mysql 中索引是根据索引列的值进行排序的,所以索引节点中存在该列中的部分值)或者根据一次索引查询就能获得记录就不需要回表,如果 select...这个是可以的,上面所说的分两步查找,第一步根据username查找是肯定不能少的,那我们只要把password和索引username放到一起就可以了。
————— 第二天 ————— 单例模式第一版: public class Singleton { private Singleton() {} //私有构造函数 private...为什么说刚才的代码不是线程安全呢?...让我们对代码做一下修改: 单例模式第二版: public class Singleton { private Singleton() {} //私有构造函数 private static...指令重排是什么意思呢?...经过volatile的修饰,当线程A执行instance = new Singleton的时候,JVM执行顺序是什么样?
领取专属 10元无门槛券
手把手带您无忧上云