2019年6月

explain sql语句 可以用来分析索引的一些情况:

idselect_typetabletypepossiable_keyskeykey_lenref

TYPE

显示子查询使用何种类型的查询

从最好到最差依次是:system > const > eq_ref > ref > rang > index > ALL

一般的优化需要达到 `rang` 级别,最好是 `ref` 级别

system

单个表中的一行记录,const 类型的特例,查询速度最快

const

通过索引一次就能找到,通常是查询主键查询或者唯一查询 (primay_key , unique)

eq_ref

唯一索引扫描,用索引查询出了一条记录 select * from users where phone = ''

ref

非唯一索引表,用到了索引查出了多条记录 select * from users where age = 18

- 阅读剩余部分 -

Mac 中有些软件是通过 pkg 包进行安装的,其中有很多是系统包。如果我们只通过删除 Applications 目录下的图标是不能完全删除的。

PKG 包安装原理

pkg 包的安装原理非常简单,它解压后就会把文件分门别类解压到指定的位置。

这样安装虽然简单,但是卸载就非常困难了。我们需要把安装时候散落在各个位置的文件全部找到并删除掉。

PKG 分析

在终端中运行 pkgutil --pkgs 命令就可以看到已经安装过的包名

com.betafish.adblock-mac
org.nodejs.node.pkg
com.diumoo.diumoo
in.sinew.Enpass-Desktop
com.audioguidia.radioFMOSX
com.eusoft.freeeudic
com.hewbo.chmreader
com.netease.163music
com.wutian.weibo
com.teamviewer.teamviewer14AuthPlugin
com.microsoft.Excel
com.atpill.atpill
com.mitledas.ChmPages

com.apple 开头的包多数是系统包,请不要删除

运行 pkgutil --files com.microsoft.Excel 就可以看到分布在各个地方的文件

usr/local/include/node/v8-profiler.h
usr/local/include/node/v8-testing.h
usr/local/include/node/v8-util.h
usr/local/include/node/v8-value-serializer-version.h
usr/local/include/node/v8-version-string.h
usr/local/include/node/v8-version.h
...

PKG 包卸载

如果依据上面的分析,一个目录一个目录删除简直太痛苦了。而系统自带的包管理工具 pkgutil 比起其他系统的包管理来说又非常弱,连最基本的 uninstall 的功能都没有提供。那么我们如何快速删除已经安装过的 pkg 包呢?

uninstall-pkg.png

借助 UninstallPKG 不仅可以轻松查看安装包所有文件的位置,还能卸载那些已经失效的安装包。比起使用终端操作,更加直观方便。

下载地址

https://xclient.info/s/uninstall-pkg.html