07 2019 档案

摘要:消息队列:在消息的传输过程中保存消息的容器。 消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 如图所示: 在不使用消息队列的情况下,用户的请求数据直接写入数据库,再高并发的情况 阅读全文
posted @ 2019-07-31 09:25 代码堆里的看客 阅读(354) 评论(0) 推荐(0)
摘要:单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十 阅读全文
posted @ 2019-07-30 11:39 代码堆里的看客 阅读(378) 评论(0) 推荐(0)
摘要:mongodb 是一种非关系型的,面向文档的数据库,也是nosql类的产品 memcache,redis等等 与mysql最大的区别:mongodb 使用javascript语言操作,保存是以json形式保存,mysql使用的是sql mongodb 在读写方面性能非常快(插入,查询),相对数据来说 阅读全文
posted @ 2019-07-29 16:42 代码堆里的看客 阅读(180) 评论(0) 推荐(0)
摘要:sphinx是国外的一款搜索软件。 coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文。 Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本是2010年发布的,它是基于Sphinx0.9.9搜索引擎的。而4.1版本是2011年发布的,它是基 阅读全文
posted @ 2019-07-27 15:36 代码堆里的看客 阅读(667) 评论(0) 推荐(0)
摘要:// 邻接表 $aa = "create table comments(commentId int,parentId int,commentBody varchar(500), foreign key(parentId) references comments(commentId)"; $bb = 阅读全文
posted @ 2019-07-25 16:32 代码堆里的看客 阅读(172) 评论(0) 推荐(0)
摘要:阿莱西亚-梅尔兹Alessia Merz ,这位亚平宁半岛的性感女人,自从结婚之后就逐渐的淡出了人们的实现,曾经的尤文教母已经现在已经是两个孩子的母亲,但是最近的梅尔兹开始蠢蠢欲动,在相夫教子的同时,她还打算做些其他事情。 现年34岁的梅尔兹是意大利最知名最性感的艺人之一,作为巴扎尼的老婆,梅尔兹长 阅读全文
posted @ 2019-07-23 16:19 代码堆里的看客 阅读(2562) 评论(0) 推荐(0)
摘要:1. Apache与Nginx大访问下性能描述正确的是?A、Apache所采用的epoll网络I/O模型非常高效B、Nginx使用了最新的kqueue和select网络I/O模型C、Apache进程执行PHP、输出HTML都得干,占用的资源多D、nginx不可以做反向代理服务器参考答案:C答案解析: 阅读全文
posted @ 2019-07-19 16:06 代码堆里的看客 阅读(437) 评论(0) 推荐(0)
摘要:声明:是已认证的服务号 这个问题已解决!! 前置说明 网页授权获取用户基本信息:两种 scope 域 https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&s 阅读全文
posted @ 2019-07-18 11:18 代码堆里的看客 阅读(1256) 评论(0) 推荐(0)
摘要:MySQL 里有很多自增的 id,每个自增 id 都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无符号整型 (unsigned int) 是 4 个字节,上限就是 2^32-1 既然自增 id 有上限,就有可能被用 阅读全文
posted @ 2019-07-15 15:23 代码堆里的看客 阅读(707) 评论(0) 推荐(0)
摘要:这是我们专栏的最后一篇答疑文章,今天我们来说说一些好问题。 在我看来,能够帮我们扩展一个逻辑的边界的问题,就是好问题。因为通过解决这样的问题,能够加深我们对这个逻辑的理解,或者帮我们关联到另外一个知识点,进而可以帮助我们建立起自己的知识网络。 在工作中会问好问题,是一个很重要的能力。 经过这段时间的 阅读全文
posted @ 2019-07-15 15:22 代码堆里的看客 阅读(338) 评论(0) 推荐(0)
摘要:我经常被问到这样一个问题:分区表有什么问题,为什么公司规范不让使用分区表呢?今天,我们就来聊聊分区表的使用行为,然后再一起回答这个问题。 分区表是什么? CREATE TABLE `t` ( `ftime` datetime NOT NULL, `c` int(11) DEFAULT NULL, K 阅读全文
posted @ 2019-07-15 15:20 代码堆里的看客 阅读(367) 评论(0) 推荐(0)
摘要:在 MySQL 里面,grant 语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到,grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效。我最开始使用 MySQL 的时候,就是照着一个操作文档的说明按照这个顺序操作的。 那么,grant 之后真 阅读全文
posted @ 2019-07-15 15:19 代码堆里的看客 阅读(679) 评论(0) 推荐(0)
摘要:我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。接下来的内容,我会 阅读全文
posted @ 2019-07-15 15:18 代码堆里的看客 阅读(525) 评论(0) 推荐(0)
摘要:在上一篇文章中,我提到 MySQL 对自增主键锁做了优化,尽量在申请到自增 id 以后,就释放自增锁。 因此,insert 语句是一个很轻量的操作。不过,这个结论对于“普通的 insert 语句”才有效。也就是说,还有些 insert 语句是属于“特殊情况”的,在执行过程中需要给其他资源加锁,或者无 阅读全文
posted @ 2019-07-15 15:17 代码堆里的看客 阅读(814) 评论(0) 推荐(0)
摘要:在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。 之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。 今天这篇文章,我们就来说说这个问 阅读全文
posted @ 2019-07-15 15:16 代码堆里的看客 阅读(698) 评论(0) 推荐(0)
摘要:我在上一篇文章末尾留给你的问题是:两个 group by 语句都用了 order by null,为什么使用内存临时表得到的语句结果里,0 这个值在最后一行;而使用磁盘临时表得到的结果里,0 这个值在第一行?今天 我们就来看看,出现这个问题的原因吧。 内存表的数据组织结构 为了便于分析,我来把这个问 阅读全文
posted @ 2019-07-15 15:15 代码堆里的看客 阅读(303) 评论(0) 推荐(0)
摘要:在第 16和第 34篇文章中,我分别和你介绍了 sort buffer、内存临时表和 join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。其中,我们在排序的时候用到了 sort buffer,在使用 join 语句的时候用到了 join buff 阅读全文
posted @ 2019-07-15 15:05 代码堆里的看客 阅读(342) 评论(0) 推荐(0)
摘要:在上一篇文章中,我们在优化 join 查询的时候使用到了临时表。当时,我们是这么用的: 你可能会有疑问,为什么要用临时表呢?直接用普通表是不是也可以呢? 今天我们就从这个问题说起:临时表有哪些特征,为什么它适合这个场景? 这里,我需要先帮你厘清一个容易误解的问题:有的人可能会认为,临时表就是内存表。 阅读全文
posted @ 2019-07-15 15:04 代码堆里的看客 阅读(475) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。 我们发现在使用 NLJ 算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查询结果更方便,而且性能也 阅读全文
posted @ 2019-07-15 15:03 代码堆里的看客 阅读(640) 评论(0) 推荐(0)
摘要:在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 今天这篇文章,我就先跟你说说 join 语句到底是怎么执行的,然后再来回答这两个问题。 为了便于量化分析,我还是创建两个表 t1 和 t2 来和你说明。 可以看到,这两个表都有一个主键索引 id 和一个索引 a,字段 b 上无索引 阅读全文
posted @ 2019-07-15 15:02 代码堆里的看客 阅读(443) 评论(0) 推荐(1)
摘要:我经常会被问到这样一个问题:我的主机内存只有 100G,现在要对一个 200G 的大表做全表扫描,会不会把数据库主机的内存用光了? 这个问题确实值得担心,被系统 OOM(out of memory)可不是闹着玩的。但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃光,逻辑备 阅读全文
posted @ 2019-07-15 15:00 代码堆里的看客 阅读(632) 评论(0) 推荐(0)
摘要:在 MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection 可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。 阅读全文
posted @ 2019-07-15 14:58 代码堆里的看客 阅读(1169) 评论(0) 推荐(0)
摘要:今天我要和你讨论的是一个沉重的话题:误删数据。 在前面几篇文章中,我们介绍了MySQL的高可用架构。当然,传统的高可用架构是不能预防误删数据的,因为主库的一个drop table命令,会通过binlog传给所有从库和级联从库,进而导致整个集群的实例都会执行这个命令。 虽然我们之前遇到的大多数的数据被 阅读全文
posted @ 2019-07-08 10:42 代码堆里的看客 阅读(284) 评论(0) 推荐(0)
摘要:我在第25和27篇文章中,和你介绍了主备切换流程。通过这些内容的讲解,你应该已经很清楚了:在一主一备的双M架构里,主备切换只需要把客户端流量切到备库;而在一主多从架构里,主备切换除了要把客户端流量切到备库外,还需要把从库接到新主库上。 主备切换有两种场景,一种是主动切换,一种是被动切换。而其中被动切 阅读全文
posted @ 2019-07-08 10:41 代码堆里的看客 阅读(464) 评论(0) 推荐(0)
摘要:在第20和21篇文章中,我和你介绍了InnoDB的间隙锁、next-key lock,以及加锁规则。在这两篇文章的评论区,出现了很多高质量的留言。我觉得通过分析这些问题,可以帮助你加深对加锁规则的理解。 所以,我就从中挑选了几个有代表性的问题,构成了今天这篇答疑文章的主题,即:用动态的观点看加锁。 阅读全文
posted @ 2019-07-08 10:41 代码堆里的看客 阅读(166) 评论(0) 推荐(0)
摘要:在前面的第24、25和26篇文章中,我和你介绍了MySQL主备复制的基础结构,但这些都是一主一备的结构。 大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来两篇文章要讨论的架构:一主多从。 今天这篇文章,我们就先 阅读全文
posted @ 2019-07-08 10:40 代码堆里的看客 阅读(376) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了一主多从的结构以及切换流程。今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题。 我们在上一篇文章中提到的一主多从的结构,其实就是读写分离的基本结构了。这里,我再把这张图贴过来,方便你理解。 读写分离的主要目标就是分摊主库的压力。图 阅读全文
posted @ 2019-07-08 10:40 代码堆里的看客 阅读(308) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了几种可能导致备库延迟的原因。你会发现,这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就有可能成了小时级别。而且对于一个压力持续比较高的主 阅读全文
posted @ 2019-07-08 10:39 代码堆里的看客 阅读(290) 评论(0) 推荐(0)
摘要:在前面的文章中,我不止一次地和你提到了binlog,大家知道binlog可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了binlog就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。 毫不夸张地说,MySQL能够成为现下最流行的开源数据库,binlog功不可没。 在 阅读全文
posted @ 2019-07-08 10:38 代码堆里的看客 阅读(379) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了binlog的基本内容,在一个主备关系中,每个备库接收主库的binlog并执行。 正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。 但是,MySQL要提供高可用能力,只有最终一致性是不够的。 阅读全文
posted @ 2019-07-08 10:38 代码堆里的看客 阅读(249) 评论(0) 推荐(0)
摘要:不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 我以前做业务护航的时候,就偶尔会碰上这种场景。用户的开发负责人说,不管你用什么方案,让业务先跑起来再说。 但,如果是无损方案的话,肯定不需要等到这个时候才上场。今 阅读全文
posted @ 2019-07-08 10:24 代码堆里的看客 阅读(200) 评论(0) 推荐(0)
摘要:今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法。从文章标题“MySQL是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关。 在专栏前面文章和答疑篇中,我都着重介绍了WAL机制(你可以再回顾下第2篇、第9篇、第12篇和第15篇文章中的相关内容),得到的结论 阅读全文
posted @ 2019-07-08 10:24 代码堆里的看客 阅读(271) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了间隙锁和next-key lock的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。 首先说明一下,这些加锁规则我没在别的地方看到过有类似的总结,以前 阅读全文
posted @ 2019-07-08 10:23 代码堆里的看客 阅读(324) 评论(0) 推荐(0)
摘要:在上一篇文章最后,我给你留了一个关于加锁规则的问题。今天,我们就从这个问题说起吧。 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表。建表和初始化语句如下(为了便于本期的例子说明,我把上篇文章中用到的表结构做了点儿修改): 这个表除了主键id外,还有一个索引c,初始化语句在表中插入了6行数 阅读全文
posted @ 2019-07-06 11:36 代码堆里的看客 阅读(1335) 评论(1) 推荐(0)
摘要:一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。今天,我就跟你聊聊这个有趣的话题,看看什么情况下,会出现这个现象。 需要说明的是,如果MySQL数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或iou 阅读全文
posted @ 2019-07-06 11:35 代码堆里的看客 阅读(316) 评论(0) 推荐(0)
摘要:我在上一篇文章,为你讲解完order by语句的几种执行模式后,就想到了之前一个做英语学习App的朋友碰到过的一个性能问题。今天这篇文章,我就从这个性能问题说起,和你说说MySQL中的另外一种排序需求,希望能够加深你对MySQL排序逻辑的理解。 这个英语学习App首页有一个随机显示单词的功能,也就是 阅读全文
posted @ 2019-07-06 11:34 代码堆里的看客 阅读(265) 评论(0) 推荐(0)
摘要:在MySQL中,有很多看上去逻辑相同,但性能却差异巨大的SQL语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。 我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。 案例一:条件字段函数操作 假设你现在维护了一个交易系统,其中交易记录表t 阅读全文
posted @ 2019-07-06 11:34 代码堆里的看客 阅读(426) 评论(0) 推荐(0)
摘要:在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前1000个人的姓名、年龄。 假设这个表的部分定义是这样的: 这时,你的SQL语句可以这么写: 这个语句看上去逻辑很清晰,但是你了 阅读全文
posted @ 2019-07-06 11:33 代码堆里的看客 阅读(309) 评论(0) 推荐(0)
摘要:在今天这篇答疑文章更新前,MySQL实战这个专栏已经更新了14篇。在这些文章中,大家在评论区留下了很多高质量的留言。现在,每篇文章的评论区都有热心的同学帮忙总结文章知识点,也有不少同学提出了很多高质量的问题,更有一些同学帮忙解答其他同学提出的问题。 在浏览这些留言并回复的过程中,我倍受鼓舞,也尽我所 阅读全文
posted @ 2019-07-06 11:32 代码堆里的看客 阅读(269) 评论(0) 推荐(0)
摘要:经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? 那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题。 这里,我们还是针对MySQL中应用最广泛的InnoDB引擎展开讨论。一个InnoDB表包含两部分,即:表结构定义和数据。在MyS 阅读全文
posted @ 2019-07-06 11:31 代码堆里的看客 阅读(319) 评论(0) 推荐(0)
摘要:在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条select count(*) from t 语句不就解决了吗? 但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想了,MySQL怎么这么笨啊,记个总数,每次要 阅读全文
posted @ 2019-07-06 11:31 代码堆里的看客 阅读(254) 评论(0) 推荐(0)
摘要:平时的工作中,不知道你有没有遇到过这样的场景,一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。 看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。 你的SQL语句为什么变“慢”了 在前面 阅读全文
posted @ 2019-07-06 11:30 代码堆里的看客 阅读(298) 评论(0) 推荐(0)
摘要:现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: 由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句: 从第4和第5篇讲解索引的文章中,我们可以知道,如果email这个字段上没有 阅读全文
posted @ 2019-07-06 11:27 代码堆里的看客 阅读(2225) 评论(0) 推荐(0)
摘要:今天的正文开始前,我要特意感谢一下评论区几位留下高质量留言的同学。 用户名是 @某、人 的同学,对文章的知识点做了梳理,然后提了关于事务可见性的问题,就是先启动但是后提交的事务,对数据可见性的影响。@夏日雨同学也提到了这个问题,我在置顶评论中回复了,今天的文章末尾也会再展开说明。@Justin和@倪 阅读全文
posted @ 2019-07-06 11:25 代码堆里的看客 阅读(375) 评论(0) 推荐(0)
摘要:在上一篇文章中,我跟你介绍了MySQL的全局锁和表级锁,今天我们就来讲讲MySQL的行锁。 MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行, 阅读全文
posted @ 2019-07-06 11:24 代码堆里的看客 阅读(378) 评论(1) 推荐(0)
摘要:我在第3篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务T启动的时候会创建一个视图read-view,之后事务T执行期间,即使有其他事务修改了数据,事务T看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。 但是,我在上一篇文章 阅读全文
posted @ 2019-07-06 11:24 代码堆里的看客 阅读(318) 评论(0) 推荐(0)
摘要:今天我要跟你聊聊MySQL的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表 阅读全文
posted @ 2019-07-06 11:23 代码堆里的看客 阅读(316) 评论(0) 推荐(0)
摘要:在上一篇文章中,我和你介绍了InnoDB索引的数据结构模型,今天我们再继续聊聊跟MySQL索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表T中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少 阅读全文
posted @ 2019-07-06 11:22 代码堆里的看客 阅读(299) 评论(0) 推荐(0)
摘要:提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。 转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱 阅读全文
posted @ 2019-07-06 11:21 代码堆里的看客 阅读(270) 评论(0) 推荐(0)
摘要:提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个SQL查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。 数据库索引的内容比较多,我分成了上下两篇文章。索引是数据库系统里面最重 阅读全文
posted @ 2019-07-06 11:21 代码堆里的看客 阅读(295) 评论(0) 推荐(0)
摘要:前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态 阅读全文
posted @ 2019-07-06 11:20 代码堆里的看客 阅读(432) 评论(0) 推荐(0)
摘要:这是专栏的第一篇文章,我想来跟你聊聊MySQL的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询 阅读全文
posted @ 2019-07-06 11:19 代码堆里的看客 阅读(292) 评论(1) 推荐(0)
摘要:前面我们介绍过索引,你已经知道了在MySQL中一张表其实是可以支持多个索引的。但是,你写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL来确定的。 不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢? 我们 阅读全文
posted @ 2019-07-05 11:26 代码堆里的看客 阅读(273) 评论(0) 推荐(0)
摘要:状态码是开发者需要了解的一项内容,日常开发中浏览器会返回给我们一些状态码,然后我们可以根据状态码所代表的含义进行问题解决。 201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。 201(已创建) 请求 阅读全文
posted @ 2019-07-02 11:20 代码堆里的看客 阅读(423) 评论(0) 推荐(0)