一.存储过程
1.创建存储过程的方法和创建视图差不多,即:
这里表示创建一个名叫productpricing的存储过程,计算并返回3个参数,类型都是8位的,小数位为2位的十进制数值。
如果不传递参数后面的括号也不能省略,因为存储过程实际上是一种函数。存储过程的代码位于BEGIN和END语句内。
2.调用存储过程的时候,有参数的必须指定,不多也不少,e.g.调用上图的存储过程应是:
CALL productpricing(@pricelow,@pricehigh,@priceaverage);
在调用存储过程时,并不显示任何数据,它返回以后可以显示(或在其他处理中使用)的变量。
e.g.为了显示结果,可以在调用存储过程之后,
SELECT @pricehigh,@pricelow,@priceaverage
所有MYSQL的变量都必须以@开始。
3.为显示用来创建存储过程的语句,可以用SHOW CREATE PROCEDURE productpricing;
为获得包括何时,由谁创建等详细信息的存储过程列表,可以用SHOW PROCEDURE STATUS。
二.改善性能
1.在平常写SQL语句的时候我的SELECT语句中经常含有多个OR条件,用多条SELECT语句和连接它们的UNION语句,可以极大的改善性能;
2.LIKE很慢,一般来说,最好使用FULL TEXT;
3.一般来说,存储过程执行得比一条一条地执行其中的各条MYSQL语句快;
三.引擎
1.MyISAM是MySQL的默认数据库引擎,性能极佳,支持全文本搜索,但不支持事务处理(transaction)
2.InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索,另外只有InnoDB引擎才允许使用外键