通常情况下选择什么模板制卡?
通常情况是指知识是以一段文字的形式呈现,而不是这些:单词、选择题、成语等(这些都可以定制模板)
其实我常用的就是enhanced cloze和basic(左对齐),我认为对于需要完全记忆答案的知识,可以采用basic类型,反之,都可以,但更倾向于使用enhanced cloze。为什么呢?因为不需要完全记忆的知识,肯定存在重点,而其他内容,是用于提示重点,这不就正好适合填空吗?而且使用填空会减轻复习时的负担,你只需要专注于记忆重点。
举个例子,针对下面这个问题,我们首先要问自己的是,需不需要记住全部答案?
如果需要,用basic;不需要,那就用cloze
索引失效的情况
- 不符合最左前缀匹配
- 使用模糊搜索时,通配符在最左边. 类似于like ‘%aaa’。所以尽量采用后置的通配符
- 但如果一定要两边都使用%怎么避免索引失效呢,即like ‘%aaa%’?使用覆盖索引可以避免索引失效,即select字段是索引列的一部分且顺序尽量一致
- 索引列参与了函数或者数学运算(加减乘除)或类型转换
- 但如果查询条件不是对索引列进行计算,那么依然可以走索引
- 字符串不加单引号,比如where phone = 123(phone原本是字符串类型,mysql会将123强制类型转换为字符串,导致索引失效)
- 当使用联合索引,前一个条件为范围查询,后面的即使符合最左前缀原则,也无法使用索引,其实好理解:第一个范围索引到的a是有序的,但a对应的b是无序的,无序还怎么索引呢?
- select * from myTest where a>4 and b=7 and c=9; – a用到了,b没有使用,c没有使用
- 这是可以考虑只建立b、c的联合索引
- 用or连接查询条件
- 存在 NULL 值条件,可能会导致索引失效
- 如果索引列是可空的,索引值是少于表的 count(*) 值的
- 索引列之间对比
- 某个表中,有两列(id 和 c_id)都建了单独索引,下面这种查询条件不会走索引
- select * from test where id=c_id;
- 这种情况会被认为还不如走全表扫描
- mysql 在使用不等于(!= 或者 <>)的时候无法使用索引,会导致全表扫描
- 存在NOT条件
- 当查询条件为非时,索引定位就困难了,执行计划此时可能更倾向于全表扫描
- 这类的查询条件有:<>、NOT、in、not exists
针对这个问题,我只需要记住重点,甚至说留个印象就足够了。
因此我制作了如下内容:
这里又引出一个新问题,为什么我在一张卡片上制作这么多填空?为什么不选择制作多级填空(也就是c2、c3等等)?如果只有一个空没记住,那我是选择重来呢?还是忽略它?这些问题下面会回答。
一张填空卡片的填空数量到底要多少才合适?
anki允许一条笔记根据填空级别被分成多张卡片,这可以解决一条笔记上填空过多的问题。
不过这里要回答的是单张卡片上的填空数量问题。
先说答案,在电脑屏幕大小范围内,制作合适的填空数量,我最多大约在20个左右
为什么是电脑屏幕范围内呢,这个完全是因为舒适度,当填空数量多到超出了屏幕范围,是很不优雅的:)
我一开始是遵循官方建议的,就是不要有太多填空,个人认为最好不要超过10个
确实,原生模板cloze的特点是,你无法一个一个点击填空查看答案,这要求你在填空很多的情况下,必须全部回答完毕,并记住自己哪些没有答出来,再点击显示答案,这样在复习的时候是有负担的,如果你觉得没有,那后面的不用看了:)
因此,如果你使用原生模板cloze,确实要听官方的:)
那么,我为什么还会存在一张卡片上20个填空的情况捏?很简单,因为这个知识点它相互关联的重点就有20个,这20个填空,最好一起记忆。(其实这种情况是比较少的,如果能拆分为多张卡片还是尽量拆分,减少单张卡片的复杂度)
这个时候,有个插件叫enhanced cloze,解决了复习的负担问题,很简单,就是支持点击单个填空然后显示答案,这样你就专注于回忆这个填空了。
还有个问题,如果20个空只有2、3个空没记住,那我是选择重来呢?还是忽略它?
一般情况下,选择重来。因为如果你卡片制作正确的话,这些填空就像一个原子性操作,要么同时成功,要么同时失败。你成功的标志就是全部记住。当然了,也存在这个空确实不怎么重要的情况,这个时候你可以忽略它。