sql约束???
NOT NULL 约束:保证列中数据不能有 NULL 值
DEFAULT 约束:提供该列数据未指定时所采用的默认值
UNIQUE 约束:保证列中的所有数据各不相同
主键约束:唯一标识数据表中的行/记录
外键约束:唯一标识其他表中的一条行/记录
CHECK 约束:此约束保证列中的所有值满足某一条件
索引:用于在数据库中快速创建或检索数据
子查询中 in 除了一个特殊情况外,一般来说改成join更快 原因是因为参考这里.这里给出了MySQL 参考手册对于in和join查询快慢的说明
1.为查询缓存优化你的查询
2.EXPLAIN 你的 SELECT 查询
3.当只要一行数据时使用 LIMIT 1
4.为搜索字段建索引
5.在Join表的时候使用相当类型的例,并将其索引
6.千万不要 ORDER BY RAND()
7.使用 ENUM 而不是 VARCHAR
8.从 PROCEDURE ANALYSE() 取得建议
9.Prepared Statements
10.垂直分割 也就是拆分表
线程共包括以下5种状态。
1.新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。
2.就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。
3.运行状态(Running) : 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。
4.阻塞状态(Blocked) : 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(01) 等待阻塞 -- 通过调用线程的wait()方法,让线程等待某工作的完成。
(02) 同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态。
(03) 其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5.死亡状态(Dead) : 线程执行完了或者因异常退出了run()方法,该线程结束生命周期。