每一个叶子节点都包含指向下一个叶子节点的指针,从而方便叶子节点的范围遍历。
所有的值都是按照顺序存储的,并且每一个叶子页到根的距离相同,很适合查找范围数据。
记住mysql仅能对索引最左边的前缀进行有效的查找,例如c1和c2,两个同时使用,可以使用索引,单个使用c1也可以使用索引,但是单个使用c2那就不能使用索引,要对c2列进行索引,必须出现c1。三个同理,前面的要出现,后面的才能用。
越小的数据类型越好,处理越快。
简单的数据类型更好,字符串是复杂的,所以日期时间不要用字符串来存储,用内置的日期时间数据类型。
尽量避免用NULL,应该指定列为Not NULL,可以用0等特殊值替代NULL。
相关的表有关的字段也要使用相应索引的数据类型,因为mysql是需要比较的。
mysql先通过索引找到对应的值,然后根据匹配的索引记录找到对应的数据行。索引可以包含一个或多个列的值。多个列时,列的顺序也很重要,mysql只能高效地使用索引的最左前缀列。
索引对查询的速度有着至关重要的影响,在没有用索引的情况下,查询会对整个表进行查询,当数据量大或需要联合查询的时候,就会查询的很慢。添加索引,就是相当于添加了一个目录,通过目录,就会直接去相应的区域查询,所以性能会数量级提高。
在mysql中找到my.cnf文件,
在[mysqld]部分添加
event_scheduler=ON,再重启就可以了
done要放在游标的上面声明,好像是这样
参数的命名最好不要和字段的名字一样,这里是不区分大小写的,注意注意。
create event name on schedule every 1 day [STARTS '2017-11-21 00:00:00'] on completion preserve enable do call 存储过程
第二句是周期,第三句是完成后要不要删,enable是开启。
存储过程中,没有数组的概念,用游标来不断读取数据,声明游标时,需要放到最前面(声明都这样declare)