外键与表锁

foreign key (cat_id) references sh_category(id) on  delete|update  no action|restrict|cascade|set null,
Restrict:如果从表有记录主表不允许删除
Cascade:如果主表删除了从表中的记录也删除


MyISAM:插入和查询时速度快
表级锁定
InnoDB:并发修改更快
行级锁定


知识点二、表锁
写一个PHP脚本可以多进程同时操作一个文件。(文件锁)
一个脚本在高并发访问时有时会出现问题。

语法:
LOCK TABLE 表名1  READ|WRITE, 表2 read|write, 表3 read|write.....
READ:共享锁|读锁: 所有人(包括自己)只能读
WRITE:排它锁|写:只有自己可以操作这张表,其他人即不能读也不能写。

释放表:unlock tables;
注意:在锁表的过程中只能操作锁定的这张表。如果要操作多张表,那么需要把所有要操作的表都锁起来。

注意:这个功能要慎用。如果把一个表锁定起来,那么整个网站所有跟这个表有关的功能都被受影响,就会导致把整个网站拖慢。应该改用PHP中的文件锁。因为PHP是锁定一个无关的文件,这个文件是否是锁定的对网站没影响。
原文地址:https://www.cnblogs.com/hgj123/p/4387611.html