mysql临时表

查看mysql进程--show processlist

有些话、适合烂在心里 提交于 2020-01-08 21:09:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 用 show processlist 查看当前运行状态。 mysql> show processlist; 下面介绍下各列的含义: id ,线程编号,当要关闭某一进程时执行 kill id ; user 列,显示当前进程用户; host 列,显示当前进程是从哪个 IP 地址和哪个端口号发出来的; db 列,显示当前这个进程目前连接的是哪个数据库; command 列,显示当前连接进程所执行命令的类型或状态,一般就是休眠( sleep ),查询( query ),连接 ( connect ); time 列,这个状态持续的时间,单位是秒; state 列,显示使用当前连接 sql 语句的状态,如查询语句,可能中间需要经历 copying to tmp table , Sorting result , Sending data 等状态才可以完 成; info 列,显示这个连接所执行的 sql 语句,因为长度有限,所以长的 sql 语句就显示不全,但是一个判断问题语句的重要依据。 mysql 列出 state 的状态主要有以下几种: Checking table 正在检查数据表(这是自动的)。 Closing tables 正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个 很快的操作

mysql 死锁等待

夙愿已清 提交于 2020-01-08 21:08:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> waiting for ndbcluster qlobal schema lock; MySQL + PHP的模式在大并发压力下经常会导致MySQL中存在大量僵死进程,导致服务挂死。为了自动干掉这些进程,弄了个脚本,放在服务器后台通过crontab自动执行。发现这样做了以后,的确很好的缓解了这个问题。把这个脚本发出来和大家Share. 根据自己的实际需要,做了一些修改: SHELL脚本:mysqld_kill_sleep.sh #!/bin/sh mysql_pwd=”root的密码" mysqladmin_exec="/usr/local/bin/mysqladmin" mysql_exec="/usr/local/bin/mysql" mysql_timeout_dir="/tmp" mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log" mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh" mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log" $mysqladmin_exec -uroot -p

MySQL中kill僵死进程的脚本

喜你入骨 提交于 2020-01-08 21:00:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> QUOTE: MySQL + PHP的模式在大并发压力下经常会导致MySQL中存在大量僵死进程,导致服务挂死。为了自动干掉这些进程,弄了个脚本,放在服务器后台通过crontab自动执行。发现这样做了以后,的确很好的缓解了这个问题。把这个脚本发出来和大家Share. 根据自己的实际需要,做了一些修改: SHELL脚本:mysqld_kill_sleep.sh #!/bin/sh mysql_pwd=”root的密码" mysqladmin_exec="/usr/local/bin/mysqladmin" mysql_exec="/usr/local/bin/mysql" mysql_timeout_dir="/tmp" mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log" mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh" mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log" $mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{

mysql的查询优化

落爺英雄遲暮 提交于 2020-01-07 21:54:44
参考网站: http://www.liyblog.top/p/6 这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。 4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union all select id from t where num=20 5,in 和 not in 也要慎用,否则会导致全表扫描,对于连续的数值,能用 between 就不要用 in 了:Select id from t where num between 1 and 3 6,下面的查询也将导致全表扫描:select id from t where name like ‘%abc%’

mysql的查询优化

半腔热情 提交于 2020-01-07 21:53:12
参考网站: http://www.liyblog.top/p/6 这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。 4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union all select id from t where num=20 5,in 和 not in 也要慎用,否则会导致全表扫描,对于连续的数值,能用 between 就不要用 in 了:Select id from t where num between 1 and 3 6,下面的查询也将导致全表扫描:select id from t where name like ‘%abc%’

5.7新特性

微笑、不失礼 提交于 2020-01-06 20:56:01
1. 背景 MySQL 5.7在2015-10-21发布了GA版本,即5.7.9,目前小版本已经到了5.7.12。5.7新增了许多新的feature和优化,接下来一个系列,我们就一起来尝尝鲜。首先这次主要是预览feature的变化以及兼容性问题。后面的系列,会针对重要的feature展开来学习。 2 安全相关的特性 2.1 认证插件 mysql.user表中的plugin更改成not null,5.7开始不再支持mysql_old_password的认证插件,推荐全部使用mysql_native_password。从低版本升级到5.7的时候,需要处理两个兼容性问题。 [兼容性] 需要先迁移mysql_old_password的用户,然后进行user表结构的升级: 1. 迁移mysql_old_password用户 MySQL 5.7.2之前的版本,是根据password的hash value来判断使用的认证插件类型,5.7.2以后的版本,plugin字段为not null,就直接根据plugin来判断了。新的密码从password字段中,保存到新的字段authentication_string中,password字段废弃处理。 如果user是隐式的mysql_native_password。直接使用sql进行变更: UPDATE mysql.user SET plugin =

mysql sys库使用功能

房东的猫 提交于 2020-01-06 20:18:14
MySQL5.7新库sys的一些实用功能 sys schema数据主要源自performance_schema。其目标是把查询performance_schema的复杂度降低,让DBA能更好地利用这个库里的数据,更快地了解MySQL的运行情况。sys schema包含了一些视图、函数和存储过程,sys schema用以帮助DBA及开发更方便的分析定位问题。 那么对于我们DBA来说,sys schema的一些主要用途有哪些? 1、哪个用户或者哪个IP的客户端使用了最多的资源? 2、数据库连接来自哪里,以及这些连接对数据库的请求情况是怎样的? 3、数据库中哪些SQL被频繁执行? 4、哪个文件产生了最多的IO,读多还是写多? 5、哪个表上的IO请求最多? 6、哪个表被访问的最多? 7、哪些语句延迟比较严重? 8、哪些SQL执行了全表扫描或执行了排序操作? 9、哪些SQL使用了临时表,又有哪些SQL用到了磁盘临时表? 10、哪个库/表占用了最多的buffer pool? 11、每个连接分配多少内存? 12、自增长字段的最大值和当前已经使用到的值? 13、索引使用情况如何?有哪些冗余索引和无用索引? 14、内部有多个线程在运行? 下面一一举例说明: 1、哪个用户或者哪个IP的客户端使用了最多的资源? mysql> select * from host_summary limit 1\G **

MYSQL数据库引擎区别详解

风流意气都作罢 提交于 2020-01-01 05:29:41
数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎: ISAM :ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。 MyISAM :MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISAMPACK工具

mysql视图和临时表的区别

百般思念 提交于 2020-01-01 03:09:54
视图 视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。 视图是一个虚表,他是通过执行SQL查询所产生的。视图以select命名存储于数据字典当中。每当SQL查询包含有视图名称的时候,数据库管理系统会执行在视图定义当中所包含的查询,以建立其虚拟结果表。该结果表可以当做查询其余部分的源表使用。 视图可以是建立在一个或多个表上,也可以建立在视图上,但是不管怎么样对视图数据的操作最终都会转换为对基本表的操作,因为视图是一个虚表,数据实际上保存在基本表中 临时表 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作,在VFP退出时自动被释放。

oracle、mysql临时表区别

眉间皱痕 提交于 2019-12-27 05:39:56
oracle临时表 临时表分类: 会话级临时表(session表) 事务级临时表 会话级临时表(session表) 会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据 创建方式 Create Global Temporary table Table_Name ( id_ int ) On Commit Preserve Rows ; 或者从另外一个表创建: create global temporary table Table_Name on commit rpeserve rows as select id from Table_Name1 ; 测试: insert into Table_Name ( id_ ) values ( 12 ) ; 当前会话窗口查询: 另起一个窗口查询: 从当前会话窗口插入数据能查询到,另起一个会话创建查询不到数据,退出当前会话自动清空数据(表结构保留) 删除临时表需要注意的是有时候会出现ORA-14452,意思是有资源还在占用临时表,无法删除。需要找到临时表的会话,手动杀掉 具体操作: -- 查找还在使用临时表的会话 SELECT sid , serial # FROM v$ session WHERE sid = ( SELECT sid FROM v$ lock WHERE id1