这是我很喜欢的主题,但今天依旧不舒服而且我队友不安ㄌ只好先断尾求生
InnoDB 是资料库引擎,
因为支援 Transaction,目前是 MySQL 的预设引擎。(早期是 MyISAM)
[[这里补张 dbms的结构图好ㄌ]]
以我目前的认知,不同存储引擎的差异主要在於「indexing」
有上过资料结构都知道,一堆资料如果要查询效率高,最好是排序过。
这就是为什麽需要做索引了,
其实就只是把会常常查询的那个 column 拿出来,并以此 column 数值来排序所有的 records。
如果再讲底层一些,densed indexing 与 multilevel-indexing
今天存资料到硬碟上,根据 table schema 每条资料会占用一定大小,
这样查询资料会很费时。
因此我们需要一个表纪录 index + 属於这个 index 的资料在哪,
而这个 index 表每条资料的大小应该会比原来的 table 小,
这样载入到记忆体中时,同样大小可以知道更多「资料在哪」的资讯。
所以如果今天 column 很少,或许就没有额外做 densed indexing 的必要呢
如果资料变多,densed index 一直增加下去,O(n) 的 n 越来越大也不是办法。
那就多增加几层吧,类似 virtual memory 的 multi-level page table 的概念。
我觉得主要差在作用层次与目的。
而有某种程度的「排序」+「动态删减」的资料结构,就会想到 binary tree,
B tree 和 B+ tree 可以说是 binary tree 的延伸变种。
索引说白了就是以空间换搜寻时间提升,所以不能每个 column 都做索引。
ORDER BY
/ WHERE
/ GROUP BY
)
<<: Leetcode: 1627. Graph Connectivity With Threshold
>>: 有限资源分配:coroutines 非同步 suspend async
前言 这边要聊聊,在处理医学影像中的X光片时,要如何将影像的 灰阶值分布 做 视觉化 呈现。 医学影...
今天子标题是Network & Port scanner,其实跟前面介绍的几个工具功能好像有...
11 近似最短路径 前面介绍的所有点对最短路径演算法,好写的得花 n^3 的时间、比较快的又得仰赖矩...
Youtube 影片 : 影片介绍如何使用 dotnet cli 打包 .net 开发程序,建立单一...
讲完前端之後,就一定要说到 Cookie 跟 Session 这两个东西了,这两个是什麽东西呢?又能...