存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
存储过程具有数据库特色,mysql有自己一套语法机制,oracle数据库则有另一套语法机制,虽然使用存储过程会提高执行速度,但使用了存储过程后,项目的数据库很难平滑的移植,例如项目A在开发的时候使用了mysql存储过程,假设将来将A项目的数据库更改为B项目则是很困难的,故我们为了保证数据库的可移植性,很少使用存储过程。
注意:游标、触发器、存储过程,都是存储过程相关的。
千万级数据,你如何提高查询效率?/SQL优化
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
应尽量避免在 where 子句中对字段进行 null 值判断
索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。 应尽可能的避免更新索引数据列,因为索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。若应用系统需要频繁更新索引数据列,那么需要考虑是否应将该索引建为