mysql设计标准事务处理标准索引使用标准约束设计sql语句标准 怎么写出高效SQL清晰无误的了知业务需求满足业务需求,不做无用功知道表数据量和索引基本情况知道完成SQL需要扫描的数据量级SQL执行计划OK?SQL性能达到要求?调整索引和SQL,优化SQL IN子查询容易导致问题,禁止使用,需改成join选择正确的驱动表:关键的第一步错误使用Left Joinleft join的表在where中出现,如Table1 left join Table2 on Table1.C1=Table2.c1w…
有时候,我们希望将写好的 sql 语句,甚至是存储过程进行查询,虽然效率不高(有时候并不是效率至上). 巧用AsTable var sql = fsql.Select<UserX>() .AsTable((a, b) => "(select * from user where clicks > 10)") .Page(1, 10).ToList(); 本身 AsTable 是用来进行分表分库的,后续我们会接着讲. 友情提醒:当开启了自动同步结构功能,UserX…
1.在from子句中包含多个表名时,必须选择记录条数最少的表作为基础表:若有三个以上的表连接查询,那就需要选择交叉表作为基础表,交叉表指被其他表引用的表. 2.使用exists代替in.使用not exists 代替not in. 高效:SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT 'X' ROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = 'MELB') 低效:SEL…
原文 http://blog.csdn.net/hejialin666/article/details/6106648 有些程序在调试时很难抓住断点(如服务程序),有些程序需要循环无数次,要看每一次或某一次的结果,等等吧! 那就来个简单的写日志程序吧,txt文件生成在debug目录里 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Fo…
SQL> select t1.* from t1,t2 where t1.object_id=t2.object_id; rows selected. Execution Plan ---------------------------------------------------------- -------------------------------------------------------------------------------- ------- | Id | Oper…
SQL> select * from employees d, departments t where d.department_id=t.department_id; rows selected. Execution Plan ---------------------------------------------------------- ----------------------------------------------------------------------------…
SQL; SAL ---------- Execution Plan ---------------------------------------------------------- -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------…
1. IS NULL 与 IS NOT NULL不能用 null 作索引, 任何包含 null 值的列都将不会被包含在索引中. 即使索引有多列这样的情况下,只要这些列中有一列含有 null,该列就会从索引中排除.也就是说如果某列存在空值,即使对该列建索引也不会提高性能.任何在 where 子句中使用 is null 或 is not null 的语句优化器是不允许使用索引的.2. 联接列对于有联接的列,即使最后的联接值为一个静态值,优化器是不会使用索引的.我们一起来看一个例子,假定有一个职工表(…