读一读

每一个叶子节点都包含指向下一个叶子节点的指针,从而方便叶子节点的范围遍历。

所有的值都是按照顺序存储的,并且每一个叶子页到根的距离相同,很适合查找范围数据。

下载.png


记住mysql仅能对索引最左边的前缀进行有效的查找,例如c1和c2,两个同时使用,可以使用索引,单个使用c1也可以使用索引,但是单个使用c2那就不能使用索引,要对c2列进行索引,必须出现c1。三个同理,前面的要出现,后面的才能用。


  1. 越小的数据类型越好,处理越快。

  2. 简单的数据类型更好,字符串是复杂的,所以日期时间不要用字符串来存储,用内置的日期时间数据类型。

  3. 尽量避免用NULL,应该指定列为Not NULL,可以用0等特殊值替代NULL。

  4. 相关的表有关的字段也要使用相应索引的数据类型,因为mysql是需要比较的。


mysql先通过索引找到对应的值,然后根据匹配的索引记录找到对应的数据行。索引可以包含一个或多个列的值。多个列时,列的顺序也很重要,mysql只能高效地使用索引的最左前缀列。


索引对查询的速度有着至关重要的影响,在没有用索引的情况下,查询会对整个表进行查询,当数据量大或需要联合查询的时候,就会查询的很慢。添加索引,就是相当于添加了一个目录,通过目录,就会直接去相应的区域查询,所以性能会数量级提高。


在mysql中找到my.cnf文件,

在[mysqld]部分添加

event_scheduler=ON,再重启就可以了


QQ图片20170920151506.png

done要放在游标的上面声明,好像是这样


参数的命名最好不要和字段的名字一样,这里是不区分大小写的,注意注意。


create event name
on schedule every 1 day [STARTS '2017-11-21 00:00:00']
on completion preserve enable
do call 存储过程


第二句是周期,第三句是完成后要不要删,enable是开启。


存储过程中,没有数组的概念,用游标来不断读取数据,声明游标时,需要放到最前面(声明都这样declare)