《Vim 实用技巧》读书笔记(第二部分)
本文接上一篇文章,本章节主要记录《Vim 适用技巧》第二部分文件相关操作的学习笔记。
本文接上一篇文章,本章节主要记录《Vim 适用技巧》第二部分文件相关操作的学习笔记。
知识源于不断实践与训练,认知源于认真阅读,知识应该是衡量一个人的重要标准。
掌握一项技能对一个人的改变的多少取决于获得这项技能所花费的时间,这就是我下定决心要学习 Vim 的原因。
VIM 支持很多种剪切板,常见的有 0,2,3,…,9,a,和”,如果开启了系统剪切板,则还有 + 和 *,可使用命令:reg
查看各剪切板的状态。
对于小量数据来讲,数据库的优化往往是建立高效的索引策略,最常用的索引类型是 B-Tree 索引。然而量变引起质变,在单表数据量较大时,B-Tree索引就无法起作用了。除非是索引覆盖查询,否则数据库服务器需要根据索引扫描的结果回表,查询所有符合条件的记录,如果数据量巨大,这将产生大量随机I/O,随之,数据库的响应时间将大到不可接受的程度。另外,索引维护(磁盘空间、I/O操作)的代价也非常高。
看完这篇文章,你可以知道
使用 CodeIgniter 2.x 可以配置 autoload 自动加载数据库,也可以在 Model 的构造函数中使用$this->load->database()
方法加载数据库:
触发器(英语:trigger)是在数据库中,在执行对数据有异动的动作时,先行拦截并处理的一种数据库对象,它大部分会设在数据表中,作为强制运行特定动作的程序,因此又称为数据操纵语言(DML)触发器。
在MySQL中,创建触发器语法如下:
1 | CREATE TRIGGER trigger_name |
其中:
trigger_name:标识触发器名称,用户自行指定;
trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。
1 | User-agent: * |
首先安装sitemap
和百度版本的sitemap
1 | npm install hexo-generator-sitemap --save |
count($arr)
和 strlen($str)
的时间复杂度都是 O(1),这是因为 PHP 所有变量都是用 Hash 结构存储,在内部维护了 Array 的元素个数和字符串的长度。is_int()
和is_integer
是等价的。in_array()
可以使用第二个参数忽略大小写。slice()
的坑:如果该元素是个对象引用 (不是实际的对象),slice
会拷贝这个对象引用到新的数组里。两个对象引用都引用了同一个对象。如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会发生改变。json_encode()
json_encode((object)null) == {} && json_encode([]) == []Download windows-nvm from https://github.com/coreybutler/nvm-windows/releases and install it.
Usage:
nvm version
: show versionnvm list
: show available node versionnvm uninstall
: uninstall a specific node versionnvm use
: use a specific node versioninstall stable: nvm install latest
then show available node versions: nvm list
select a specific version from available list : use xx