为什么使用自增列作为主键
要回答这个问题,要从innodb引擎的存储结构说起,首先innodb使用聚簇索引,也叫聚集索引。同时使用b+树作为主索引。数据存放在b+树的叶子节点上,在叶子节点内按顺序排放,这就要求存储数据的主键需要是自增长的,因为如果不是自增长的,插入可能导致b+树数据的移动,为了维持b+树的特点,性能损失会比较大。
存储过程
存储过程是预编译过的一系列Sql语句,创建一次,多次使用。性能比执行多次sql语句要高。
非关系型数据库与关系型数据库的比较
首先,非关系型数据采用键值对的模式,而且不需要经过sql层的解析,性能比关系型数据库要高。
其次,也是因为采取键值对模式,水平扩展比较方便
而关系型数据支持事务,这是一个非常重要的特性。关系型数据库支持复杂的查询。
最左前缀原则
为了提高搜索效率,需要使用多列索引,b+树会优先比较最左列,来选择查询方向。所以,在使用多列索引时,最好能够按照索引顺序,来确定sql语句的写法。最常用的,筛选到数据最多的放在左边。