Oracle

mysql下载与安装

偶尔善良 提交于 2021-02-03 06:33:48
1.mysql 官网: https://www.mysql.com/ 2. 解压与安装 [root@python ~]# tar xf /usr/local/src/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz -C /mysql/ [root@python ~]# yum install -y libaio Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile Package libaio-0.3.107-10.el6.x86_64 already installed and latest version Nothing to do [root@python mysql-5.6.42-linux-glibc2.12-x86_64]# pwd /mysql/mysql-5.6.42-linux-glibc2.12-x86_64 shell> groupadd mysql shell > useradd -r -g mysql -s /bin/ false mysql shell > cd /usr/ local shell > tar

数据库分库分表、读写分离的原理实现,使用场景

丶灬走出姿态 提交于 2021-02-03 04:51:01
为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力。 分库分表的原理和实现 1.什么是分区、分表、分库 分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的,分区实现比较简单,数据库mysql、oracle等很容易就可支持。 分表 就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。 分库 一旦分表,一个库中的表会越来越多 将整个数据库比作图书馆,一张表就是一本书。当要在一本书中查找某项内容时,如果不分章节,查找的效率将会下降。而同理,在数据库中就是分区。 2.什么时候考虑使用分区? 一张表的查询速度已经慢到影响使用的时候。 sql经过优化 数据量大 表中的数据是分段的 对数据的操作往往只涉及一部分数据,而不是所有的数据

MySQL、SQLServer、Oracle 分组排序

痞子三分冷 提交于 2021-02-03 01:06:33
   1. MySQL: 1.聚集函数:max(),min(),avg(),sum(),count() 在分组上应用聚集函数。 2.聚合函数对应于每组的数据:即max(id) 每组最大的id 3.having 是group by分组后的结果集再加的条件(having相当于Where 但只能在group by后,条件可以是聚合函数(真实表中可能不存在的数据))。 例如: SELECT * FROM tb_chatlog WHERE chatid IN ( SELECT max ( Chatid ) maxId FROM tb_chatlog WHERE LoginUser = ' ******* ' GROUP BY LoginUser, BuyerName ); select 后可以出现任意字段,并不是非得分组的字段。 分组字段越多,数据越少,分组排序一般都是获取组内排序后的某个值(最大id值),这是可以合理分配分组字段和聚合函数得到最大id集合,再根据子查询即可取得所需数据结果集。   2. SQLServer: SQLserver 分组查询: 函数:ROW_NUMBER ( ) over SQLserver中:group by 后的字段,在select 后可以出现,不在group by 的字段在select 只能使用聚合函数。 SELECT * FROM ( SELECT

自助BI工具:Tableau和Smartbi的对比(上)

风流意气都作罢 提交于 2021-02-02 21:13:32
商业智能(BI)和分析平台长期以来一直是商业的重要组成部分,但由于自助BI工具的兴起,在数据科学家和数据库管理员的支持下,分析的责任已经从IT转移到了商业分析师身上。 因此,BI已经从生成月度报告的记录系统,转变为基于各种内部和外部来源的数据,交互式地发现和共享趋势、预测以及对业务问题的回答。采用自助BI的企业可以在几天内决定行动方案,而不是需要长达几个月的时间。 1、部署使用 Tableau 为C/S架构,需要在用户终端安装desktop进行分析的设计,在服务器端安装server,将模块数据与分析发布在server上,使用reader查看客户端生成的分析,可以在web断和移动端查看在server上发布的分析。体量较大,布署稍复杂,使用时需要客户端配合。 Smartbi 采用B/S架构,容易部署、升级简便。让大数据应用和分析走进员工和管理者工作中,激发各层人员对数据的认知、挖掘和运用;通过推动全员自助分析、数据共享,提升企业数据资产价值,促进业务发展、风险控制和内部管理,进而推动数字化转型。也可以集成到自己开发的项目中使用。 2、平台界面 Tableau是服务器与客户端分离的,平台管理与设计分开进行,产品的逻辑清晰,易于理解、便于用户的操作,但不利于IT部门管控和配合。 Smartbi是把整个平台和设计都放在一个界面上,利用权限管理,来控制每个使用者显示的界面。有利于企业级的管控。

性能优化技巧:前半有序时的排序

陌路散爱 提交于 2021-02-02 14:47:45
一、 问题背景与适用场景 在对数据集进行排序运算时,有时会遇到这样一种场景:数据集T已经按字段a有序,而字段b无序,现在我们要将T按a、b排序,我们称之为前半有序(a有序)的排序。此时我们能想到一种优化的排序方法:从T中先取出a值相同的一组记录,再这一组内对b排序。然后再依次取出下一组a值相同的记录,重复这个动作,直到完成T中所有记录的排序。这种方法的好处是不需要对T中所有记录进行大排序,一次只需取出一小组,对内存容量要求大大减低,只需能装下每个小组即可。 遗憾的是SQL并不支持这种优化算法,只能所有记录进行大排序,而SPL提供了对这种算法的支持,下面我们实例测试一下,并与Oracle作对比。 二、 测试环境与任务 测试机有两个Intel2670 CPU,主频2.6G,共16核,内存64G,SSD固态硬盘。在此机上安装虚拟机来测试,设置虚拟机为16核、8G内存。 在虚拟机上创建数据表salesman1,共两个字段:area(字符串)、salesman(字符串),生成数据记录4亿行,按area升序排列,area不同值共2000个,每个area对应salesman为20万个。将此表数据导入Oracle数据库,同时用它生成集算器SPL组表来进行测试。 再建另一张表salesman2作大数据量测试,数据表结构不变,总数据记录20亿行,area值4000个

阿里P8架构师深度概述分布式架构

只愿长相守 提交于 2021-02-02 13:51:58
简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞! 分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统架构或者资深研发人员,我们必须尽可能多的学习与之相关的各种知识,掌握各种技术的演进路线,正式从一名码农蜕变成为架构师 什么是分布式? 互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并发指系统单位时间内收到的请求数量(取决于使用的用户数),没有上限。海量数据包括:海量数据的存储和海量数据的处理。这两个工程难题都可以使用分布式系统来解决。 简单理解,分布式系统就是把一些计算机通过网络连接起来,然后协同工作。协同工作需要解决两个问题: 1)任务分解 把一个问题拆解成若干个独立任务,每个任务在一台节点上运行,实现多任务的并发执行。 2)节点通信 节点之间互相通信,需要设计特定的通信协议来实现。协议可以采用RPC或Message Queue等方式。 分布式和集群的关系 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 计算机发展历史

阿里P8架构师深度概述分布式架构

妖精的绣舞 提交于 2021-02-02 13:06:02
简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞! 分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统架构或者资深研发人员,我们必须尽可能多的学习与之相关的各种知识,掌握各种技术的演进路线,正式从一名码农蜕变成为架构师 什么是分布式? 互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并发指系统单位时间内收到的请求数量(取决于使用的用户数),没有上限。海量数据包括:海量数据的存储和海量数据的处理。这两个工程难题都可以使用分布式系统来解决。 简单理解,分布式系统就是把一些计算机通过网络连接起来,然后协同工作。协同工作需要解决两个问题: 1)任务分解 把一个问题拆解成若干个独立任务,每个任务在一台节点上运行,实现多任务的并发执行。 2)节点通信 节点之间互相通信,需要设计特定的通信协议来实现。协议可以采用RPC或Message Queue等方式。 分布式和集群的关系 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 计算机发展历史

Tomcat服务器的下载与安装。并配置到 idear中

强颜欢笑 提交于 2021-02-02 10:33:02
文章目录 前言 一、Tomcat服务器(重点) 软件架构 常见的web服务器 二、下载步骤 注意: 二、将Tomcat配置到 idear中 三、新建一个web项目(重要) 四、IDEA中热部署【重点掌握】 总结 前言   Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 一、Tomcat服务器(重点) 软件架构   1).C/S(Client/Server)(客户端/服务器)结构:桌面、网络版应用程序。例如:QQ,暴风,百度网盘,各种游戏的客户端 特点:在客户端电脑需要安装后才能使用,启动后都有自己的“界面”,运行时,需要要联网。 缺点:制作困难(至少要有客户端程序、服务器程序)、客户端使用麻烦(需要下载安装程序,安装)、后期维护,更新困难(尤其是客户端)。 优点:可以充分的利用客户端硬件资源(CPU、显卡…)可以在界面上显示非常酷炫的效果。   2).B/S

Recursive Subquerying with sorting

↘锁芯ラ 提交于 2021-02-02 09:57:45
问题 I looked at Tim Hall's excellent article here, that allows you to work with self-referenced entities and show hierarchical data (starting with top level nodes and joining back recursively), using CTE like syntax in Oracle. So I have code that looks like this: WITH J1(JOBMST_ID, JOBMST_NAME, JOBMST_PRNTID, JOBMST_TYPE, LVL) AS ( SELECT JOBMST_ID, JOBMST_NAME, JOBMST_PRNTID, JOBMST_TYPE, 1 FROM TIDAL.JOBMST WHERE JOBMST_PRNTID IS NULL UNION ALL SELECT J2.JOBMST_ID,J2.JOBMST_NAME,J2.JOBMST

Recursive Subquerying with sorting

浪尽此生 提交于 2021-02-02 09:56:34
问题 I looked at Tim Hall's excellent article here, that allows you to work with self-referenced entities and show hierarchical data (starting with top level nodes and joining back recursively), using CTE like syntax in Oracle. So I have code that looks like this: WITH J1(JOBMST_ID, JOBMST_NAME, JOBMST_PRNTID, JOBMST_TYPE, LVL) AS ( SELECT JOBMST_ID, JOBMST_NAME, JOBMST_PRNTID, JOBMST_TYPE, 1 FROM TIDAL.JOBMST WHERE JOBMST_PRNTID IS NULL UNION ALL SELECT J2.JOBMST_ID,J2.JOBMST_NAME,J2.JOBMST