有了服务器和域名,第一步是做网站备案。
拿到备案号之后,才能开始建站过程。
云主机上面安装第三方一键php包的配置。好在国人也开发了这方面的面板,可以免费的使用。
借助这些 php面板,可以轻松配置php环境,mysql数据库,phpmyadmin、nginx等环境软件。
不管使用的是win服务器还是linux 服务器,都可以在三方面板的帮助下,成功配置出可视化 *** 作界面,然后一键部署 worpdress环境。
有不懂的问我吧,在线留言。因为建站过程比较繁琐,这里也不支持那么多,到老魏那里搜索相关文章,记得是写过的,挺详细的。
DNS是互联网中一项重要的基础服务,它将简单易记的域名转换成可由计算机识别的IP地址,以便客户端对服务器的正常访问。而由DNS构建起的域名与IP地址之间的对应关系,称之为“DNS记录”(record)。通过设置不同的解析记录,可以实现对主机名不同的解析效果,从而满足不同场景下的域名解析需求。常见的域名解析记录,主要有以下几种类型。一、A记录
A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上,同时也可以设置域名的子域名。简单来讲,A记录就是指定域名对应的IP地址。如我们添加一条A记录将: 将域名指向一个>当客户端在 发出POST请求时/albums,您希望将请求正文中描述的专辑添加到现有专辑数据中。
为此,您将编写以下内容:
1、编写代码
a添加代码以将专辑数据添加到专辑列表。
在此代码中:
1)用于ContextBindJSON 将请求正文绑定到newAlbum。
2) album将从 JSON 初始化的结构附加到albums 切片。
3)向响应添加201状态代码,以及表示您添加的专辑的 JSON。
b更改您的main函数,使其包含该routerPOST函数,如下所示。
在此代码中:
1)将路径中的POST方法与 /albumspostAlbums函数相关联。
使用 Gin,您可以将处理程序与 >网络适配器,什么是网络适配器
网卡,又称网络适配器或网络接口卡(NIC),英文名为Network Interface Card。在网络中,如果有一台计算机没有网卡,那么这台计算机将不能和其他计算机通信,它将得不到服务器所提供的任何服务了。当然如果服务器没有网卡,就称不上服务器了,所以说网卡是服务器必备的设备,就像普通PC(个人电脑)要配处理器一样。平时我们所见到的PC机上的网卡主要是将PC机和LAN(局域网)相连接,而服务器网卡,一般是用于服务器与交换机等网络设备之间的连接。
一般服务器和小型机等网卡具有如下特点:
网卡数量多
普通PC接入局域网或因特网时,一般情况下只要一块网卡就足够了。而为了满足服务器在网络方面的需要,服务器一般需要两块网卡或是更多的网卡。如AblestNet的X5DP8服务器主板上面内置了Intel的82546EM 1000Mbps自适应网卡芯片,这款芯片可以向下兼容10Mbps、100Mbps的端口。
据传输速度快
目前,大约有80%的网络是采用以太网技术的,现在我们最常见到的是以太网网卡。按网卡所支持带宽的不同可分为10Mbps网卡、100Mbps网卡、10/100Mbps自适应以太网卡、1000Mbps网卡等几种。10Mbps网卡已逐渐退出历史舞台,而100Mbps网卡与10/100bps自适应网卡目前是普通PC上常用的以太网网卡。对于大数据流量网络来说,服务器应该采用千兆以太网网卡,这样才能提供高速的网络连接能力。谈到千兆以太网网卡,我们就不得不说一下新一代的PCI总线——PCI-X,它可为千兆以太网网卡、基于Ultra SCSI320的磁盘阵列控制器等高数据吞吐量的设备提供足够高的带宽。由于服务器的PCI网络适配器一般都具备相当大的数据吞吐量,旧式的32bit、33MHz的PCI插槽已经无法为那些PCI网络适配器提供足够高的带宽了。而PCI-X可以提供相对于旧式32bit、33MHz PCI总线8倍高的带宽,这样就可以满足服务器网络适配器的数据吞吐量的要求了。如果主板中已经集成了两块100Mbps的以太网网卡,我们可以在BIOS中屏蔽掉板载网卡,然后在PCI-X插槽中安装千兆以太网适配器,这样就能有效地增加网络带宽,大大提高整个网络的数据传输速率。AblestNet的服务器系统都基本上所有的Xeon级系统都提供了PCI-X。
CPU占用率低
由于一台服务器可能要支持几百台客户机,并且还要不停地运行,因此对服务器网络性能的要求就比较高了。而服务器与普通PC工作站的最大不同在于,普通PC工作站CPU的空闲时间比较多,只有在工作站工作时才比较忙。而服务器的CPU则是不停地工作,处理着大量的数据。如果一台服务器CPU的大部分时间都在为网卡提供数据响应,势必会影响服务器对其它任务的处理速度。所以说,较低的CPU占用率对于服务器网卡来说是非常重要的。服务器专用网卡具有特殊的网络控制芯片,它可以从主CPU中接管许多网络任务,使主CPU集中“精力”运行网络 *** 作和应用程序,当然服务器的服务性能也就不会再受影响了。
安全性能高
服务器不但需要有强悍的服务性能,同样也要具有绝对放心的安全措施。在实际应用中,无论是网线断了、集线器或交换机端口坏了,还是网卡坏了都会造成连接中断,当然后果是不堪设想的。影响服务器正常运行的因素很多,其中与外界直接相通的网卡就是其中很重要的一个环节。为此,许多网络硬件厂商都推出了各自的具有容错功能的服务器网卡。例如Intel推出了三种容错服务器网卡,它们分别采用了Adapter Fault olerance(AFT,网卡出错冗余)、Adapter Load Balancing(ALB,网卡负载平衡)、Fast Ether Channel(FEC,快速以太网通道)技术。AFT技术是在服务器和交换机之间建立冗余连接,即在服务器上安装两块网卡,一块为主网卡,另一块作为备用网卡,然后用两根网线将两块网卡都连到交换机上。在服务器和交换机之间建立主连接和备用连接。一旦主连接因为数据线损坏或网络传输中断连接失败,备用连接会在几秒钟内自动顶替主连接的工作,通常网络用户不会觉察到任何变化。这样一来就避免了因一条线路发生故障而造成整个网络瘫痪,可以极大地提高网络的安全性和可靠性。ALB是让服务器能够更多更快传输数据的一种简单易行的好方法。这项新技术是通过在多块网卡之间平衡数据流量的方法来增加吞吐量,每增加一块网卡,就增宽100Mbps通道。另外,ALB还具有AFT同样的容错功能,一旦其中一条链路失效,其他链路仍可保障网络的连接。当服务器网卡成为网络瓶颈时,ALB技术无须划分网段,网络管理员只需在服务器上安装两块具有ALB功能的网卡,并把它门配置成ALB状态,便可迅速、简便地解决瓶颈问题。FEC是Cisco公司针对Web浏览及Intranet等对吞吐量要求较大的应用而开发的一种增大带宽的技术。FEC同时也为进行重要应用的客户/服务器网络提供高可靠性和高速度。AFT、ALB、FEC用的是同一个驱动程序,一个网卡组只能采用一种设置。系统采用何种技术要视具体情况而定。一.gin索引需要安装第三方插件
yum install postgresql96-contrib -- 安装插件
find / -name extension --可以看到btree_gincontrol存在
create extension btree_gin; -- 添加索引
二测试数据基本属性介绍
总共使用3个表,表结构和数据量完全一致。
表数据量:10522369
表字段:id ,basic_acc_no,id_card,name,sex,telephone,json_t
1)索引的配置情况:
basic_account_info_al -- btree
basic_account_info_al2 --gin
basic_account_info_al3 -- btree multi
basic_account_info_al 单列索引 id,basic_acc_no,name,json_t
basic_account_info_al2 gin索引 (id,basic_acc_no,id_card,name),(json_t)
basic_account_info_al3 复合索引 (id,basic_acc_no),(name,id)(json_t,id)
basic_account_info_al 表达式索引 (json_t->>id)
basic_account_info_al2表达式索引 ((json_t->>'id'))
三.测试结果
1唯一值属性:索引字段都是唯一 id,basic_acc_no
查询语句
explain analyse select from basic_account_info_al2 where id = 29699221 ;
explain analyse select from basic_account_info_al where id = 29699221 ;
explain analyse select from basic_account_info_al3 where id = 29699221 ;
explain analyse select from basic_account_info_al2 where basic_acc_no = 'XFK2990134' ;
explain analyse select from basic_account_info_al where basic_acc_no = 'XFK2990134' ;
explain analyse select from basic_account_info_al3 where basic_acc_no = 'XFK2990134' ;
explain analyse select from basic_account_info_al2 where basic_acc_no = 'XFK9780134' and id = 29699221;
explain analyse select from basic_account_info_al where basic_acc_no = 'XFK9780134' and id = 29699221;
explain analyse select from basic_account_info_al3 where basic_acc_no = 'XFK9780134' and id = 29699221;
explain analyse select from basic_account_info_al2 where id = 29699221 and basic_acc_no = 'XFK9780134' ;
explain analyse select from basic_account_info_al where id = 29699221 and basic_acc_no = 'XFK9780134' ;
explain analyse select from basic_account_info_al3 where id = 29699221 and basic_acc_no = 'XFK9780134' ;
2重复值属性: name是有重复值的。
explain analyse select from basic_account_info_al where name ='张燕洪';
explain analyse select from basic_account_info_al3 where name ='张燕洪';
explain analyse select from basic_account_info_al2 where name ='张燕洪';
explain analyse select from basic_account_info_al2 where id = 24426014 and name = '周杨' ;
explain analyse select from basic_account_info_al where id = 24426014 and name = '周杨' ;
explain analyse select from basic_account_info_al3 where id = 24426014 and name = '周杨' ;
explain analyse select from basic_account_info_al2 where name = '周杨' and id = 24426014 ;
explain analyse select from basic_account_info_al where name = '周杨' and id = 24426014 ;
explain analyse select from basic_account_info_al3 where name = '周杨' and id = 24426014 ;
3jsonb属性
create index inx_gin_json on basic_account_info_al2 using gin (json_t);
create index inx_btree_json on basic_account_info_al (json_t);
create index inx_btree_2_js on basic_account_info_al3 (json_t,id );
explain analyse select from basic_account_info_al where json_t ='{"id": 21782879, "sex": 0, "name": "刘乐典"}';
explain analyse select from basic_account_info_al2 where json_t ='{"id": 21782879, "sex": 0, "name": "刘乐典"}';
explain analyse select from basic_account_info_al3 where json_t ='{"id": 21782879, "sex": 0, "name": "刘乐典"}';
explain analyse select from basic_account_info_al WHERE json_t @> '{"id": 21782879}';
explain analyse select from basic_account_info_al2 WHERE json_t @> '{"id": 21782879}';
explain analyse select from basic_account_info_al3 WHERE json_t @> '{"id": 21782879}';
explain analyse select from basic_account_info_al where (json_t->>id)= '24426014' ;
explain analyse select from basic_account_info_al2 where (json_t->>id)= '24426014' ;
explain analyse select from basic_account_info_al3 where (json_t->>id)='24426014' ;
4jsonb表达式索引
查询条件 表名 查询时使用的索引名称 查询时间(5次平均)/ms
(json_t->>id)= '24426014' basic_account_info_al inx_json_id 0040
basic_account_info_al3 inx_json_id_2 0039
explain analyse select from basic_account_info_al where (json_t->>id)= '24426014' ;
explain analyse select from basic_account_info_al2 where (json_t->>id)= '24426014' ;
四.获相同的结果使用Jsonb与btree对比
jsonb支持两种特有的GIN索引jsonb_ops和jsonb_path_ops。 jsonb_ops调用gin_extract_jsonb函数生成key,每个键和值都作为一个单独的索引项。而jsonb_path_ops使用函数gin_extract_jsonb_path抽取:只为每个值创建一个索引项。{“foo”:{“bar”,”baz”}}, jsonb_ops生成3个索引项,jsonb_path_ops由foo,bar,baz组合一个hash值作为一个索引项。jsonb_path_ops索引要比jsonb_ops的小很多,性能上也会有所提升。
create index inx_gin_patn_json ON publicbasic_account_info_al4 USING gin (json_t jsonb_path_ops); -- jsonb_path_ops
create index inx_gin_json on basic_account_info_al2 using gin (json_t); --jsonb_ops
1精确查询
2范围查询
下表显示了gin索引对于jsonb数据类型可使用的 *** 作符。
名称 索引数据类型 可索引 *** 作符
jsonb_ops jsonb & | @>
json_path_ops jsonb @>
注: & | 索引key是否包含在jsonb中
对于范围(json_t->>'id')< 20000079,这样的条件 gin索引不起作用, 这里采用表达式索引方式,查询条件的两边数据类型相同才可以做索引查询,否则全表扫描。
CREATE INDEX inx_json_id_2 ON publicbasic_account_info_al2 USING btree (((json_t->>'id')::int));
总结: 当仅有一个条件查询时,gin索引与btree索引的性能差异不大,但有多个条件查询时,gin,btree单
列索引没有btree复合索引的性能高。jsonb是以二进制格式存储且不保证键的顺序。可以使用表达式索引指定到jsonb的具体键值,但是如果不能提前知道查询数据中的哪个键,确定定义GIN索引和使用@>(或者其他有利于索引的 *** 作符)查询。
五.jsonb添加数据属性
例如:
{"id":20000241,"name":"陈敏","sex":1} -> {"age":"18","id":20000241,"name":"陈敏","sex":1}
一旦创建了索引,就不需要进一步的干预:当表被修改时,系统将更新索引,当执行计划认为使用索引比顺序的表扫描更有效的时候,它会使用索引。
UPDATE basic_account_info_al4 SET json_t = json_t || '{"age":"18"}'::jsonb; -- 更新语句
gin索引名称 索引方式 修改前大小 修改后大小 带索引更新时间
inx_gin_patn_json jsonb_path_ops 574M 615M 643561004 ms
inx_gin_json jsonb_ops 665M 695M 时间过长超过1h
jsonb_ops方式建立的索引大量更新时,执行时间太长。当插入更新时gin索引比较慢,如果要向一张大表中插入大量数据时,最好先把gin索引删除,插入数据后再重建索引。
当json_t为{"id":20000241,"name":"陈敏","sex":1} 数据量为10522369 创建gin索引时间
130372955 ms
当json_t为{"age":"18","id":20000241,"name":"陈敏","sex":1} 数据量为10522369 创建gin索引时间
148971011 ms(1)a5=8a2=a2×q³,q=2
an=a1q(n-1)=2^(n-1)
(2)bn=2^(n-1)+n,前n项和可以拆成两部分,一部分是{an}的前n项和,一部分是n(即等差数列,公差为1,首项为1)的前n项和Sn=[a1(1-q^n)]/(1-q)+n(n+1)/2
=2^n+n²/2+n/2 -1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)