sql优化

Solr与MySQL查询性能对比

最后都变了- 提交于 2020-04-06 10:34:52
测试环境 本文简单对比下Solr与MySQL的查询性能速度。 测试数据量:10407608 Num Docs: 10407608 普通查询 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时间。 在项目中一个最常用的查询,查询某段时间内的数据,SQL查询获取数据,30s左右 SELECT * FROM `tf_hotspotdata_copy_test` WHERE collectTime BETWEEN '2014-12-06 00:00:00' AND '2014-12-10 21:31:55'; 对collectTime建立索引后,同样的查询,2s,快了很多。 Solr索引数据: <!--Index Field for HotSpot--> <field name="CollectTime" type="tdate" indexed="true" stored="true"/> <field name="IMSI" type="string" indexed="true" stored="true"/> <field name="IMEI" type="string" indexed="true" stored="true"/> <field name="DeviceID" type="string" indexed="true" stored=

Python连接MySQL数据库

大兔子大兔子 提交于 2020-04-06 08:42:19
常用函数 Python DB API 2.0 对事务提供了两个方法: commit() 提交 rollback() 回滚 cursor用来执行命令的方法: callproc(self, procname, args) 用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数 execute(self, query, args) 执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数 executemany(self, query, args) 执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数 nextset(self) 移动到下一个结果集 cursor用来接收返回值的方法: fetchall(self) 接收全部的返回结果行. fetchmany(self, size=None) 接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据. fetchone(self) 返回一条结果行. rowcount 这是一个只读属性,并返回执行execute() 方法后影响的行数。 scroll(self, value, mode='relative') 移动指针到某一行; 如果mode='relative',则表示从当前所在行移动value条,如果 mode=

mysql 杂记(一)

梦想与她 提交于 2020-04-06 07:54:37
1. mysql数据库基本操作 启动停止mysql服务器:net start\stop mysql 连接mysql数据库:mysql -u root -h localhost -p password 2. mysql 存储引擎 查询mysql支持的存储引擎:show engines; innoDB存储引擎:倾向于事务处理的应用程序,频繁的更新、删除操作 MyISAM存储引擎:查询速度快,空间和内存使用效率低 MEMORY存储引擎:“内存”,存储速度快但安全性不高 3. mysql 基本操作 创建数据库:create database db_admin; 显示所有的数据库:show databases; 显示数据库中所有的表:show tables; 选择数据库:use db_admin; 删除数据库:drop database db_admin; 创建数据表:create table tb_new(id int primary key, name varchar(20)); 查询表结构:show columns from tb_new; / describe tb_new; 修改表结构:alter table tb_new add email varchar(30), add adress varchar(50); // 可以是modify\drop\change 重命名表

MySQL——1

为君一笑 提交于 2020-04-06 07:09:29
学习 0.Mysql 介绍 1.是用于管理文件的一个软件 1.服务端软件 -socket服务端 -本地文件操作 -解析指令 2.客户端软件 -socket客户端 -发送指令 -解析指令 PS:数据库管理系统DBMS 2.类似软件 sqllite,db2,oracle,access,sql,server,Mysql,MongDB,redis 分类:关系型数据库:sqllite,db2,oracle,access,sql,server,Mysql 非关系型数据库:MongDB,redis1.Mysql 安装 windows: 1.下载安装包 2.防止任意目录 3.初始化:\bin\mysqld --initialize-insecure 4.启动服务端 5.客户端连接 \bin\mysqld -u root -p 6.发送指令: 1.show databases 2.create databases db1 7.环境变量的配置 ...\bin 8.windows服务 ...\bin\mysqld --install ...\bin\mysqld --remove 命令:net start mysqld net stop mysqld2.关于连接 1.文件夹-文件-数据行 数据库- 表 - 行 2.连接 1.默认用户:root 2.创建用户:create user 'username'@

企业数据库上云新选择!阿里云发布云数据库SQL Server 2019版本

萝らか妹 提交于 2020-04-06 06:24:05
1、赋予企业更多可能,云数据库SQL Server 2019版发布 云数据库SQL Server 2019标准版正式在阿里云上线,带来了更多新的体验。SQL Server 2019版本提供了大数据群集新特性,更高引擎性能及安全、可用性等数据库能力的增强。 云数据库SQL Server 2019版本又进一步基于云平台,提供了高可用、高安全、高性能及轻运维的全套数据库解决方案,为客户的业务场景带来引擎能力和运维能力的全面提升。除了既有实例的升级,云数据库SQL Server2019版也可更好地支撑机器学习、人工智能等新兴领域的数据库应用。 2、共享型规格族上线,正版又便宜 云数据库SQL Server标准版系列全新发布共享型规格族,相比早期的独享型规格族,有超过50%的费用下降,进一步降低企业上云成本。 共享型实例独享被分配的内存资源,通过阿里云数据库的规模红利效应,实例CPU部分复用同一宿主物理机上的CPU资源,从而进一步提升性价比。共享型实例具备主从高可用架构,使得用户在更多普适性场景上,有了一种兼具高可用和低成本的更优化选择。 3、云数据库SQL Server专属集群——客户专属的RDS SQL Server集群云 云数据库SQL Server全新专属集群形态上线,为企业级客户提供了无缝上云的选择。在专属集群形态下,客户独享集群资源池内所有物理机的资源,可在主机上自由灵活分配资源

mysql索引原则

梦想的初衷 提交于 2020-04-06 03:54:41
设计原则 经常被用户条件查询的字段,创建索引 索引不是越多越好;索引占用磁盘空间,影响insert、update、delete性能 经常修改的表,不要建过多的索引;更新表数据时,索引也会进行微调或者更新,十分消耗系统资源 数据量小的表,不需要建索引;数据量小时查询本来就很快,但是建索引会对于索引结构的维护带来系统资源消耗 boolean值字段不需要建索引;比如deteleTag字段,只有0或者1的情况 唯一性字段建议建唯一索引;查询速度有明显提高 当排序是固定多个列时,在这些列上建组合索引 优化原则 避免使用 select * 范围查询索引失效。( > 、< 、between...and... 、<> 、!= 、like ) is null 、is not null 、or 索引失效 使用函数、计算等操作索引失效 组合索引最左原则。(建索引顺序与查询顺序要一致) 连接查询表之间的字符集与校对集要一致。( utf8 、utf8_bin) 来源: oschina 链接: https://my.oschina.net/u/4198095/blog/3217536

CDH从零开始快速安装法

允我心安 提交于 2020-04-06 01:10:38
环境:(全程root用户操作,如果是非root用户需要sudo权限) 云服务器-centos7.2,2CPU+8G内存+100G磁盘 * 3 (我把hostname分别命名为:data-1、data-2、data-3) CDH准备安装5.16.2版本 mysql准备安装5.7版本 开工,CDH在线安装~~~ 【准备工作】 1.1 命令:ssh-keygen,为了免密操作:把三台机器的公钥(~/.ssh/id_rsa.pub)都写入到三台机器的~/.ssh/authorized_keys中。 1.2 配置/etc/hosts,为了机器间互相用hostname访问方便(如果用内网ip访问的话可以不配置) 1.3 安装ntp,用于时间同步(如果各个机器上的时间不一致,集群会有各种问题)。【教程见附录--ntp配置】 1.4 安装mysql,用于存储集群的元数据(不多说。。。练手的话可以直接用内置的PSQL存储元数据)【教程见附录--mysql5.7配置】 1.5 去mysql官网下载驱动:cp mysql-connector-java-5.1.39-bin.jar /usr/share/java/mysql-connector-java(/usr/share/java/mysql-connector-java必须是这个路径、这个名字否则CDH无法识别) 【傻瓜式安装CDH -->

浅说MySQL优化方法

柔情痞子 提交于 2020-04-05 19:05:07
1.优化思路 在数据库的优化上我们有两个方面,一方面是安全,另一方面则是性能. 安全 ,就是要保证数据的可持续性; 性能,则说的就是数据的高性能访问; 2.优化方法 1)选取最适用的字段属性 一般来说,数据库中的表越小,查询执行的效率越快,因此我们可以在创建表的时候将字段竟可能设定的小一点,这样增加了数据库的空间. 另一个方法则是在可能的情况下,尽量把字段设置为非空,这样查询的时候就不用去比较NULL值,从而提升查询速度 2)使用连接查询代替子查询 使用子查询的话数据库需要在内存中先创建出临时表,然后再把临时表用在另一个查询上,子查询可以一次性完成很多逻辑上多个步骤才能完成的SQL操作,这样查询速度不是很快,而采用连接查询的话,MYSQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作. 3)使用联合来代替手动创建的临时表 使用UNION查询,可以把 需要使用临时表的两条或更多的 SELECT 查询合并的一个查询中。在客户端的查询会话结束的时候,临时表会被自动删除,从而保证数据库整齐、高效。使用 UNION 来创建查询的时候,我们只需要用 UNION作为关键字把多个 SELECT 语句连接起来就可以了, 要注意的是所有 SELECT 语句中的字段数目要想同 . SELECT * FROM t_address UNION SELECT * FROM t_area; 4

SQL优化

℡╲_俬逩灬. 提交于 2020-04-05 18:04:59
SQL优化 1.原因 需要SQL优化的原因有:   一、SQL语句性能低下   二、执行时间过长   三、等待时间过长   四、SQL语句欠佳(多数出现在连接查询时)   五、索引失效   六、服务器参数设置不合理(例如:缓冲区、线程数) SQL:   编写过程:     select...dinstinct ...from...join...on...where...group by...having...order by...limit   解析顺序:     from...on...join...where...group by...having...select... dinstinct ...order by...limit 详细信息可参照: https://www.cnblogs.com/annsshadow/p/5037667.html SQL优化,主要就是在优化索引   索引作用:相当于书的目录   索引:index 是帮助mysql高效获取数据的数据结构。索引是数据结构 组成(树:B+树,Hash树) B+树数据结构图: B树不光有上边的二叉树,也可以有三叉乃至多叉树: B+三叉树图: 索引弊端: 索引的弊端: 1.索引本身很大, 可以存放在内存/硬盘(通常为 硬盘) 2.索引不是所有情况均适用: a.少量数据 b.频繁更新的字段 c.很少使用的字段 3

MySQL进阶篇(01):基于多个维度,分析服务器性能

倾然丶 夕夏残阳落幕 提交于 2020-04-05 17:44:05
本文源码: GitHub·点这里 || GitEE·点这里 一、服务器性能简介 1、性能定义 服务器性能优化是一项非常艰巨的任务,当然也是很难处理的问题,在写这篇文章的时候,特意请教下运维大佬,硬件工程师,数据库管理,单从自己的实际开发经验来看,看待这个问题的角度起码是不全面的。 补刀一句 :在公司靠谱少撕逼,工程师这个群体是很好交朋友的,互相学习一起进步,升职加薪他不好吗? 服务性能定义:完成一个任务或者处理一次接口请求所需要的时间,这个时间是指响应完成时间,即请求发出,到页面响应回显结束,这是看待性能问题的基本逻辑。 2、分析性能 服务的基本过程一般如下图,这是一张最简单的前后端分离,加一台数据库存储的流程,但是想要说明一个复杂的逻辑。 从页面请求,到获取完整的响应结果,这个过程每个环节都可能导致性能问题,抛开网络,硬件,服务器,MySQL存储这些核心客观因素,单是下面这行代码就可以秒掉很多人的努力。 Thread.sleep(10000); // 仿佛整个世界都安静了。 影响性能的因素很多,一般说性能优化会从下面几个方面考虑: 网络传输,比如私有云和公有云的交互,接口传输内容过大; 应用服务,接口设计是否最简,没有逻辑问题,架构设计是否合理; 存储服务,MySQL的查询写入,表设计是否合理,连接池配置是否合理; 硬件设施,CPU和内存的利用是否在合理区间,缓存是否合理;