mysql临时表

高性能MYSQL读书要点摘录_1_QUERY模块

♀尐吖头ヾ 提交于 2019-12-07 01:54:54
1 Query Type 查询类型包含: a full table scan , index scans, range scans, unique index lookups, and constants. const Type: 主键查询一般为Const类型 All Type : 全表扫描 2 为啥要拆分JOIN操作 Caching can be more efficient; Executing the queries individually can sometimes reduce lock contention; Scale database more easily; Reduce redundant row access; 3 Query states MYSQL查询状态 show full processList ; Sleep , Query, Sorting result, Sending data, Locked, Analyzing and statistics 4 SHOW STATUS 查看MYSQL状态信息 5 让MYSQL不走缓冲 SELECT SQL_NO_CACHE COUNT(*) FROM XXX 6 UNION UNION是MYSQL查询 是先把SQL分开查询 放到一张临时表里 ,在返回给客户端。 7 Execution Plan

常用mysql命令大全

孤街醉人 提交于 2019-12-06 08:03:33
常用的MySQL命令大全 连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令: exit (回车)。 修改密码 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令: mysqladmin -uroot -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、例2:再将root的密码改为djg345。 mysqladmin -uroot -pab12 password djg345 增加新用户。(注意:和上面不同

MySQL 行列转换变化各种方法实现总结(行变列报表统计、列变行数据记录统计等)

女生的网名这么多〃 提交于 2019-12-06 02:02:04
前言: mysql行列变化,最难的就是将多个列变成多行,使用的比较多的是统计学中行变列,列变行,没有找到现成的函数或者语句,所以自己写了存储过程,使用动态sql来实现,应用业务场景,用户每个月都有使用记录数录入一张表,一个月一个字段,所以表的字段是动态增长的,现在需要实时统计当前用户使用的总数量,如果你知道有多少个字段,那么可以用select c1+c2+c3+…. From tbname where tid=’111’;来实现,但是关键是这个都是动态的,所以在应用程序端来实现确实不适宜,可以放在数据库后台在存储过程里实现。 而且在行变成列中,如果要写单个sql来实现,列的数目就需要写死,因为如果不知道要展示成多少列的话,就需要用动态变量,而一条sql里面无法使用动态变量。但是可以使用sql块来实现动态的效果。 一,列变成行例子演示 1,准备测试数据 这是基础数据表,里面有多个字段wm201403……,现在需要把N个这样的列变成行数据。 USE csdn; DROP TABLE IF EXISTS flow_table; CREATE TABLE `flow_table` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `Number` BIGINT(11) NOT NULL, `City` VARCHAR(10) NOT NULL,

MySQL使用规范手册

允我心安 提交于 2019-12-05 04:20:22
背景 一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢;而在Java应用开发中数据库更是尤为重要,绝大多数情况下数据库的性能决定了程序的性能,如若前期埋下的坑越多到后期数据库就会成为整个系统的瓶颈;因此,更规范化的使用MySQL在开发中是不可或缺的。 一、MySQL数据库命名规范 1、数据库所有表前缀均使用项目名称首字母缩写; 2、数据库所有对象名称均使用小写字母,并且单词之间通过下划线分开; 3、数据库所有对象名称禁止使用MySQL保留字及关键字,涉及到关键字的SQL查询需要将关键字用单引号括起来; 4、数据库所有对象名称不超过32个字符,并且命名要遵循见名知意原则; 5、数据库临时表必须以 pro_tmp_ 为前缀并且以日期 20190917 为后缀,备份表必须以 pro_bac 为前缀并以时间戳为后缀;(pro为项目名称首字母缩写) 6、数据库所有存储相同数据的列名和列类型必须保持一致。 二、MySQL数据库基本设计规范 1、若无特殊说明,建表时一律采用Innodb存储引擎。 选择合适的引擎可以提高数据库性能,如InnoDB和MyISAM,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定; 基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持;MyISAM类型的表强调的是性能

mysql监控常用shell脚本

主宰稳场 提交于 2019-12-04 08:22:16
#/bin/sh #检测mysql server是否正常提供服务 mysqladmin -u sky -ppwd -h localhost ping #获取mysql当前的几个状态值 mysqladmin -u sky -ppwd -h localhost status #获取数据库当前的连接信息 mysqladmin -u sky -ppwd -h localhost processlist #获取当前数据库的连接数 mysql -u root -p123456 -BNe "select host,count(host) from processlist group by host;" information_schema #显示mysql的uptime mysql -e"SHOW STATUS LIKE '%uptime%'"|awk '/ptime/{ calc = $NF / 3600;print $(NF-1), calc"Hour" }' #查看数据库的大小 mysql -u root -p123456-e 'select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;'

【mysql】Mysql5.7--sys_schema视图

家住魔仙堡 提交于 2019-12-04 06:44:48
前言: MySQL 5.7中引入了一个新的sys schema,sys是一个MySQL自带的系统库,在安装MySQL 5.7以后的版本,使用mysqld进行初始化时,会自动创建sys库。 sys库里面的表、视图、函数、存储过程可以使我们更方便、快捷的了解到MySQL的一些信息,比如哪些语句使用了临时表、哪个SQL没有使用索引、哪个schema中有冗余索引、查找使用全表扫描的SQL、查找用户占用的IO等,sys库里这些视图中的数据,大多是从performance_schema里面获得的。目标是把performance_schema的复杂度降低,让我们更快的了解DB的运行情况。 1.sys库总览 本篇文章是基于MySQL 5.7.23版本实验的。打开sys库(希望你跟着我一起做哦),我们会发现sys schema里包含1个表,100个视图,存储过程及函数共48个,如下图所示: 其实我们经常用到的是sys schema下的视图,下面将主要介绍各个视图的作用,我们发现sys schema里的视图主要分为两类,一类是正常以字母开头的,共52个,一类是以 x$ 开头的,共48个。字母开头的视图显示的是格式化数据,更易读,而 x$ 开头的视图适合工具采集数据,显示的是原始未处理过的数据。 下面我们将按类别来分析以字母开头的52个视图: host_summary :这个是服务器层面的,以IP分组

Mysql--08 存储引擎

青春壹個敷衍的年華 提交于 2019-12-04 04:56:01
目录 一.存储引擎简介 二.MySQL自带的存储引擎类型 三.真实企业案例 四.Innodb存储引擎——表空间介绍 一.存储引擎简介  1、文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2、文件系统类型:ext2 3 4 ,xfs 数据 2.1 不管使用什么文件系统,数据内容不会变化 2.2 不同的是,存储空间、大小、速度。 3、MySQL引擎: 可以理解为,MySQL的“文件系统”,只不过功能更加强大。 4、MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能 总之,存储引擎的各项特性就是为了保障数据库的安全和性能设计结构。 二.MySQL自带的存储引擎类型 MySQL 提供以下存储引擎: 01)InnoDB 02)MyISAM 03)MEMORY 04)ARCHIVE 05)FEDERATED 06)EXAMPLE 07)BLACKHOLE 08)MERGE 09)NDBCLUSTER 10)CSV 还可以使用第三方存储引擎: 01)MySQL当中插件式的存储引擎类型 02)MySQL的两个分支 03)perconaDB 04)mariaDB #查看当前MySQL支持的存储引擎类型 mysql> show engines; +--------------------+--------

sql语句性能优化介绍

强颜欢笑 提交于 2019-12-03 03:36:02
一,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%’ 或者select id from t where name like ‘%abc’若要提高效率,可以考虑全文检索

MySQL - 引擎、Explain、权限详解

匿名 (未验证) 提交于 2019-12-02 22:06:11
一、引擎 简介 Innodb引擎 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。 MyIASM引擎 MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。不过和Innodb不同,MyIASM中存储了表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选择。 主要区别 1、MyIASM是非事务安全的

mysql 临时表使用

匿名 (未验证) 提交于 2019-12-02 22:06:11
语法 : create temporary table temptable_name 1.和实体表一样有主键、索引 2.在一次查询中不能同时使用2次临时表 (Can’t reopen table) 3.生命周期只在一个连接中,断开连接临时表会被释放 4.临时表分内存临时表和磁盘临时表,当临时表存储空间大于 ‘tmp_table_size’ 值时,会在磁盘上创建临时表,从而效率下降 文章来源: mysql 临时表使用