摘要: 第十六讲:如何正确地显示随机消息? 该文章承接上一篇order by排序,进一步提出随机挑选数据的问题,站在大量数据查询的情况下:提出select word from words order by rand() limit 3;这种我们经常使用的查询语句的弊端:既要建立临时表排序(这里优化器使用的rowid排序)而且如果表中有一万条数据,那么扫描行数高达2万零三条(虽然sort_buffer排序不涉及表操作,不扫描表,这里需要注意临时表,上一张没细讲,就是因为使用另一个引擎,先后从memory到innodb引擎读了1万条数据),此外,拓宽了上一张rowid主键的范围(也可以是系统建的默认递增主键),还有优先队列排序法也挺有意思(与归并排序算法区分下),为了解决上面随机查询的弊端,我们提出了随机排序算法(这里要注意数据空洞,不能用大小比较)利用变量,字符串拼接,预处理语句十分有意思 阅读全文
posted @ 2024-09-09 20:34 guixiang 阅读(28) 评论(0) 推荐(0)
摘要: 该文章简述了order by排序的两种策略,一个是全字段排序:将字段全部放到sort__buffer里面,在内存内部排序(内存要求高),另一个是rowid排序:将order后面的指定字段与ID一起扔到内存排序,但因为如果查询有其他字段,他会再次回到表进行一次主键索引(因此相对而言内存消耗更小),之后为了更加快速,我们想到了前面的覆盖索引(这样可以避免创建临时表,前面的两个策略都创建了临时表),大概就是建立联合索引将我们所要查询的字段全部包涵进去,而且这还免去的排序,快的一批,但这样会加重后续索引维护,各有利弊 阅读全文
posted @ 2024-09-08 21:56 guixiang 阅读(62) 评论(0) 推荐(0)
摘要: 第十四讲:答疑文章(一):日志和索引相关问题 简概: ​ 到目前为止,我已经收集了 47 个问题,很难通过今天这一篇文章全部展开。所以,我就先从中找了几个联系非常紧密的问题,串了起来,希望可以帮你解决关于日志和索引的一些疑惑。而其他问题,我们就留着后面慢慢展开吧。 ​ 我在第 2 篇文章《日志系统: 阅读全文
posted @ 2024-09-07 22:03 guixiang 阅读(80) 评论(0) 推荐(0)
摘要: 第十三讲:count(*)这么慢,我该怎么办? 简概: count(*) 的实现方式 ​ 你首先要明确的是,在不同的 MySQL 引擎中,count() 有不同的实现方式。 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count() 的时候会直接返回这个数,效率很高; 而 InnoDB 阅读全文
posted @ 2024-09-06 18:31 guixiang 阅读(95) 评论(0) 推荐(0)
摘要: 第十二讲: 为什么表数据删掉一半,表文件大小不变? 简概: 问题:表删掉了一半的数据,表文件的大小还是没变? ​ 经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? InnoDB 的表回收 ​ 那么今天,我就和你聊聊数据库表的空间回收,看看如何解 阅读全文
posted @ 2024-09-05 20:52 guixiang 阅读(123) 评论(0) 推荐(0)
摘要: 目录第十讲:为什么我的MySQL会“抖”一下?图概:提出现实问题: SQL 执行的时候特别快,有时变得特别慢原因:为什么有时会“flush”呢?第一种场景,粉板满了,记不下了。第二种场景,要记住的事情太多,自己快记不住了,找账本把这笔账先加进去。第三种场景是,生意不忙,打烊之后柜台没事,掌柜闲着也是 阅读全文
posted @ 2024-09-04 21:30 guixiang 阅读(45) 评论(0) 推荐(0)
摘要: 第十讲:怎么给字符串字段加索引? ​ 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 总概 类似邮箱登录系统的长表索引 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser( ID big 阅读全文
posted @ 2024-09-02 20:03 guixiang 阅读(68) 评论(0) 推荐(0)
摘要: 目录利用git插件git LFS实现大文件上传原因:git LFS下载链接前提命令执行部分:第一步,跟踪:检查跟踪情况:第二步:添加和提交跟踪文件第三步:提交收工注意: 利用git插件git LFS实现大文件上传 原因: gitub默认文件传送为100MB,有时我们要上传大于100MB大小文件 gi 阅读全文
posted @ 2024-08-14 20:44 guixiang 阅读(142) 评论(0) 推荐(0)
摘要: 目录五.redis5.1 什么是CDN5.2 CDN的原理5.3 首先,介绍一下Redis过期删除策略Redis对于过期的key,有两种删除策略:定期删除惰性删除5.4 为啥需要两种删除策略呢?5.5 然后,再介绍Redis淘汰策略.5.6 那么,如何设置淘汰策略呢?5.7 如何配置Redis能使用 阅读全文
posted @ 2024-08-11 19:34 guixiang 阅读(46) 评论(0) 推荐(0)
摘要: 目录四.mongodb4.1 mongodb的优势有哪些缺点4.2 什么是mongodb中的document4.3 什么场景下会使用mongodb4.4 mongodb中的分片是什么意思4.5 什么时候需要分片:4.6 如何将数据分布在不同的chunk上4.7 mongodb支持哪些类型的索引4.8 阅读全文
posted @ 2024-08-10 19:36 guixiang 阅读(39) 评论(0) 推荐(0)