临时表

广度优先,从子节点找到到根路径的sql

浪尽此生 提交于 2019-11-26 12:47:54
/* 注解: 以前遇到过一个同事,在处理树的时候,在sql语句里面用递归,造成性能非常低下。 在遇到sql处理树的时候,可以采用以下方法,用循环来解决。 主要思路: 找到Cateogry的Parent插入临时表,在临时表里做遍历,每到一条记录,都做一个操作:将它的parent select出来,插入临时表,最后,将临时表join Cateogry表。 */ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[Proc_GetCategoryPath] @CategoryID uniqueidentifier AS IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID=object_id(N'#_Name') AND OBJECTPROPERTY(id, N'IsUserTable')=1) DROP TABLE #_Name /*建一个临时表*/ CREATE TABLE [dbo].[#_Name] ( [ID] [bigint] IDENTITY (1, 1) NOT NULL, [ParentCategoryID] uniqueidentifier NULL , [CategoryID] uniqueidentifier NULL ,

MYSQL语句中的explain

对着背影说爱祢 提交于 2019-11-26 12:11:03
1.使用mysql explain的原因    在我们程序员的日常写代码中,有时候会发现我们写的sql语句运行的特别慢,导致响应时间特别长,这种情况在高并发的情况下,我们的网站会直接崩溃,为什么双十一的淘宝在如此高的并发访问量的情况下依旧运转良好,除了过硬的设备以及服务器分流等技术外,良好的sql查询语句也是功不可没的! 我们会去寻找并且记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,此时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。 一个完整的查询语句的explain展现在我们眼前(explain也只能使用在select语句中): expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra,下面对这些字段出现的可能进行解释: 1. id: 包含一组数字,表示查询中执行select子句或操作表的顺序 id相同,执行顺序由上至下,否则id值越大(通常子查询会产生)优先级越高,越先被执行 id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行  id列为null的就表是这是一个结果集

MySQL会话临时表空间

拜拜、爱过 提交于 2019-11-25 21:58:46
1、物理文件 [root@roidb1 data]# cd \#innodb_temp/ [root@roidb1 #innodb_temp]# ls -lh total 160K -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_10.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_1.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_2.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_3.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_4.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_5.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_6.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_7.ibt -rw-r-----. 1 mysql mysql 80K Nov 22 18:58 temp_8.ibt -rw-r-----. 1 mysql