background image

5、锁定表,优化事务处理:
   a.

 

我们用一个 SELECT 

 

语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。

     

 

包含有 WRITE 

 

关键字的 LOCK TABLE 

 

语句可以保证在 UNLOCK TABLES 命令被执行之前,

     

 

不会有其它的访问来对 inventory 进行插入、更新或者删除的操作

   mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");
   mysql_query("SELECT customerid FROM `customerinfo` where id=".$id);
   mysql_query("UPDATE `orderinfo` SET ordertitle='$title' where customerid=".
$id);
   mysql_query("UNLOCK TABLES");
6、使用外键,优化锁定表
   a.把 customerinfo 里的 customerid 映射到 orderinfo 里的 customerid,
     任何一条没有合法的 customerid 的记录不会写到 orderinfo 里
   CREATE TABLE customerinfo
   (
     customerid INT NOT NULL,
     PRIMARY KEY(customerid)  
   )TYPE = INNODB;
   CREATE TABLE orderinfo
   (
     orderid INT NOT NULL,
     customerid INT NOT NULL,
     PRIMARY KEY(customerid,orderid),
     FOREIGN KEY (customerid) REFERENCES customerinfo
     (customerid) ON DELETE CASCADE   
   )TYPE = INNODB;
   注意:'ON DELETE CASCADE',该参数保证当 customerinfo 表中的一条记录删除的话同时也会删除

order
         表中的该用户的所有记录,注意使用外键要定义事务安全类型为 INNODB;
7、建立索引:
   a.格式:
   (普通索引)->
   创建:CREATE INDEX <索引名> ON tablename (索引字段)
   修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)
   创表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段)) 
   (唯一索引)->
   创建:CREATE UNIQUE <索引名> ON tablename (索引字段)
   修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)
   创表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段)) 
   (主键)->
   它是唯一索引,一般在创建表是建立,格式为:
   CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])
8、优化查询语句
   a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作
   例子 1:
   SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)
   SELECT * FROM order WHERE orderDate<"2008-01-01";(快)
   例子 2:
   SELECT * FROM order WHERE addtime/7<24;(慢)
   SELECT * FROM order WHERE addtime<24*7;(快)
   例子 3:
   SELECT * FROM order WHERE title like "%good%";
   SELECT * FROM order WHERE title>="good" and name<"good";

8、PHP 的意思(送 1 分)

答:PHP 是一个基于服务端来创建动态网站的脚本语言,您可以用 PHP 和 HTML 生成网站主页

9、MYSQL 取得当前时间的函数是?,格式化日期的函数是(2 分)

答:now(),date()