1 . 在SELECT 的时候如果知道访问的返回数据的数目的话,最好能指名限定的数量,
MySql: SELECT * FROM table limit n
Oracle: SELECT * FROM table rownum<n
因为在查询中,如果不指定顺序,SQL 会在匹配到你期望的数目时,继续搜索,如果指定了数量,则这时就结束搜索
2. DBMS 的SQL执行
Oracle:有个"共享池"作为缓存,如果SQL语句已经在“共享池”里了的话,则不软解析,如果没有的话则硬解析
所以可通过绑定变量可以尽量让sql走软解析,不足之处在于可能会导致生成的执行计划不够优化,因此是否需要绑定,要根据情况而定。
SQL> select * from player where player_id = 10001; 未绑定变量 SQL> select * from player where player_id = :player_id; 绑定变量
Mysql:有类似的机制,但是mysql8.0取消了该机制
3. 设计表的基本原则
“三少一多”原则
三少:数据表的个数越少越好;数据表中的字段个数越少越好;数据表中联合主键的字段个数越少越好
一多:使用主键和外健越多越好
一多原则:试情况而定,如果在高并发和分布式系统的情况下,这个原则会增加系统维护复杂度,但是在项目初期还是建议按照这个原则。 |