Gumihoy
06
03
11 | 怎么给字符串字段加索引 11 | 怎么给字符串字段加索引
现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser( ID bigint un
2019-06-03
03
12 | 为什么我的MySQL会“抖”一下 12 | 为什么我的MySQL会“抖”一下
平时的工作中,不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。 看上去,这就像是数据库“抖”了一下。今天,我们就一
2019-06-03
03
03
14 | count(*)这么慢,我该怎么办 14 | count(*)这么慢,我该怎么办
在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条 select count() from t 语句不就解决了吗? 但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢
2019-06-03
03
15 | 答疑文章(一):日志和索引相关问题 15 | 答疑文章(一):日志和索引相关问题
在浏览这些留言并回复的过程中,我倍受鼓舞,也尽我所知地帮助你解决问题、和你讨论。可以说,你们的留言活跃了整个专栏的氛围、提升了整个专栏的质量,谢谢你们。评论区的大多数的留言我都直接回复了,对于需要展开说明的问题,我都拿出小本子记了下来。这些
2019-06-03
03
16 | “order by”是怎么工作的 16 | “order by”是怎么工作的
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名、年龄。 假设这个表的部分定义是这样的: CR
2019-06-03
03
17 | 如何正确地显示随机消息 17 | 如何正确地显示随机消息
我在上一篇文章,为你讲解完 order by 语句的几种执行模式后,就想到了之前一个做英语学习 App 的朋友碰到过的一个性能问题。今天这篇文章,我就从这个性能问题说起,和你说说 MySQL 中的另外一种排序需求,希望能够加深你对 MySQ
2019-06-03
03
03
19 | 为什么我只查一行的语句,也执行这么慢 19 | 为什么我只查一行的语句,也执行这么慢
一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。今天,我就跟你聊聊这个有趣的话题,看看什么情况下,会出现这个现象。 需要说明的是,如果 MySQL 数
2019-06-03
03
20 | 幻读是什么,幻读有什么问题 20 | 幻读是什么,幻读有什么问题
在上一篇文章最后,我给你留了一个关于加锁规则的问题。今天,我们就从这个问题说起吧。 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表。建表和初始化语句如下(为了便于本期的例子说明,我把上篇文章中用到的表结构做了点儿修改): CRE
2019-06-03
03
21 | 为什么我只改一行的语句,锁这么多 21 | 为什么我只改一行的语句,锁这么多
在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。
2019-06-03
03
22 | MySQL有哪些“饮鸩止渴”提高性能的方法 22 | MySQL有哪些“饮鸩止渴”提高性能的方法
不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 我以前做业务护航的时候,就偶尔会碰上这种场景。用户的开发负责人说,不管你用什么方案,让业务先跑起来
2019-06-03
3 / 6