SQL技巧知识整理【sql逻辑执行顺序、oracle批量插入时id自增长、索引等】

作者: admin 分类: Oracle数据库 发布时间: 2019-06-07 00:26  阅读: 206 views

一、sql语句的逻辑执行顺序

注:根据执行计划的过程可以对sql进行优化。

(8)SELECT 
(9)DISTINCT
(11)<top num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | ROLLUP>
(7)HAVING <having_condition>
(10)ORDER BY<order_by_list>

 

二、insert进行数据批量插入时,指定主键id起始位置进行不间断插入

注:测试时该种方式比较好用方便,不用频繁对自增列做增加或删除。当然要注意唯一性


SET @i = 0;

INSERT INTO kmall_profit_order SELECT
	(@i :=@i + 1) i,
	'6B95182C82AA3272E050A00ACC3C431F',
	a.share_user_id,
	a.order_id,
	b.serials_number,
	a.id,
	1,
	1,
	1,
	1,
	SYSDATE(),
	SYSDATE()
FROM
	(
		SELECT
			*
		FROM
			trans_order_commerce
		WHERE
			id >= 162600
		AND id <= 162620
	) a,
	trans_order b
WHERE
	a.order_id = b.id

 

3.优化数据库时,建立组合索引还是列索引的判断标准

注:有时候不知道应该给表添加单列索引,还是组合索引时,通过以下方式判断num1和num2的数量大小。差距不大,建议单列索引,差距大可以组合索引

select count(distinct 列a) num1,count(distinct 列a,列b,列c...) num2 from table

 


   原创文章,转载请标明本文链接: SQL技巧知识整理【sql逻辑执行顺序、oracle批量插入时id自增长、索引等】

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读