<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SQL 优化 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/sql-%E4%BC%98%E5%8C%96/</link><description>Recent content in SQL 优化 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 05 Mar 2020 22:42:15 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/sql-%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>ES 增删改查操作</title><link>https://pangyd.com/post/233-es/</link><pubDate>Thu, 05 Mar 2020 22:41:24 +0800</pubDate><guid>https://pangyd.com/post/233-es/</guid><description>&lt;p>&lt;br>&lt;/p>&lt;h2 md-src-pos="12..17">创建&lt;/h2>&lt;h3 md-src-pos="18..29">自定义ID增加&lt;/h3>&lt;pre>&lt;code md-src-pos="30..92">PUT /{index}/{type}/{id}
{
 "field": "value",
 ...
}
&lt;/code>&lt;/pre>&lt;h3 md-src-pos="93..103">自动增加ID&lt;/h3>&lt;blockquote md-src-pos="104..114">&lt;p md-src-pos="106..114">使用post方式&lt;/p>&lt;/blockquote>&lt;pre>&lt;code md-src-pos="115..244">POST /website/blog/
{
 "title": "My second blog entry",
 "text": "Still trying this out...",
 "date": "2014/01/01"
}
&lt;/code>&lt;/pre>&lt;h2 md-src-pos="245..250">更新&lt;/h2>&lt;pre>&lt;code md-src-pos="251..380">PUT /website/blog/123
{
 "title": "My first blog entry",
 "text": "Just trying this out...",
 "date": "2014/01/01"
}
&lt;/code>&lt;/pre>&lt;blockquote md-src-pos="381..467">&lt;p md-src-pos="383..467">我们能看到 Elasticsearch 已经增加了 _version 字段值，created 标志设置成 false ，是因为相同的索引、类型和 ID 的文档已经存在。&lt;/p>&lt;/blockquote>&lt;h2 md-src-pos="468..473">删除&lt;/h2>&lt;pre>&lt;code md-src-pos="474..506">DELETE /website/blog/123
&lt;/code>&lt;/pre>&lt;blockquote md-src-pos="507..554">&lt;p md-src-pos="508..554">如果找到该文档，Elasticsearch 将要返回一个 200 ok 的 HTTP 响应码&lt;/p></description></item><item><title>MongoDB笔记</title><link>https://pangyd.com/post/227-mongodb/</link><pubDate>Sat, 09 Nov 2019 11:19:19 +0800</pubDate><guid>https://pangyd.com/post/227-mongodb/</guid><description>&lt;p>&lt;b>&lt;i>MongoDB简介&lt;/i>&lt;/b>&lt;/p>&lt;p>&lt;b>MongoDB介绍&lt;/b>&lt;/p>&lt;pre data-anchor-id="8t84">&lt;code class="hljs less">&lt;span class="hljs-selector-tag">MongoDB&lt;/span>是面向文档的非关系型数据库，不是现在使用最普遍的关系型数据库，其放弃关系模型的原因就是为了获得更加方便的扩展、稳定容错等特性。面向文档的基本思路就是：将关系模型中的“行”的概念换成“文档（&lt;span class="hljs-selector-tag">document&lt;/span>）”模型。面向文档的模型可以将文档和数组内嵌到文档中。因此，实际中可以用一条数据表示非常复杂的结构。
&lt;span class="hljs-selector-tag">MongoDB&lt;/span>没有预定义模式：文档的键(key)和值(value)不再是固定的类型和大小，而且根据需求要添加或者删除字段变得更容易了。由于没有模式需要更改，通常不需要迁移大量数据。不必将所有数据都放到一个模子里面，应用层可以处理新增或丢失的键。这样开发者可以非常容易地变更数据模型。
实际应用中，随着数据量的增大，数据库都要进行扩展。扩展有纵向扩展和横向扩展。纵向扩展是使用计算能力更强的机器，也是最省力的方法，但是很容易达到物理极限，无论花多少钱也买不到最新的机器了。横向扩展就是通过分区将数据分散到更多的机器上。&lt;span class="hljs-selector-tag">MongoDB&lt;/span>的设计采用横向扩展。面向文档的数据模型使它很容易地在多台服务器之间进行数据分割。还可以自动处理跨集群的数据和负载，自动重新分配文档，以及将用户请求路由到正确的机器上。开发者根本不用考虑数据库层次的扩展问题，需要扩展数据库时，在集群中添加机器即可，&lt;span class="hljs-selector-tag">MongoDB&lt;/span>会自动处理后续的事情。
&lt;span class="hljs-selector-tag">MongoDB&lt;/span>有如上各种特性，但为了达到这些，他也放弃了关系型数据库的某些功能如表连接&lt;span class="hljs-selector-tag">join&lt;/span>和复杂的多行事务。&lt;/code>&lt;/pre>&lt;p>&lt;b>MongoDB的优势与劣势&lt;/b>&lt;/p>&lt;p>优势&lt;/p>&lt;p>快速！基于内存，将热数据存放在物理内存中（不仅仅只是索引和少部分数据），从而提高了整体速度和效率。&lt;/p>&lt;p>高扩展性！MongoDB的高可用和集群架构拥有十分高的扩展性。&lt;/p>&lt;p>自身的FailOver机制！在副本集中，当主库遇到问题，无法继续提供服务的时候，副本集将选举一个新的主库继续提供服务。&lt;/p>&lt;p>JSon格式的数据！MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。&lt;/p>&lt;div class="md-section-divider">&amp;nbsp;&lt;/div>&lt;p>劣势&lt;/p>&lt;p>应用经验少！由于NoSQL兴起时间短，应用经验相比关系型数据库较少。&lt;/p>&lt;p>由于以往用到的都是关系型数据库，可能会造成使用者一开始的不适应。&lt;/p>&lt;p>无事务机制！MongoDB本身没有自带事务机制，若需要在MongoDB中实现事务机制，需通过一个额外的表，从逻辑上自行实现事务。&lt;/p>&lt;p>&lt;b>MongoDB基础知识与CRUD&lt;/b>&lt;/p>&lt;p data-anchor-id="ejso">1.文档(document):相当于传统关系型数据库的“行”，但比传统行表示的信息更加复杂。例如：&lt;br>&lt;/p>&lt;p data-anchor-id="ejso">&lt;/p>&lt;pre lay-lang="Python" class="layui-code" skin="notepad">{"name":"jack","age":18,"sex":"male"}
&lt;/pre>&lt;br>&lt;p>&lt;/p>&lt;div class="md-section-divider">&lt;div class="cnblogs_Highlighter sh-gutter">&lt;/div>&lt;/div>&lt;p data-anchor-id="pz0y">2.集合(collection):这个在MongoDB中代表一组文档，类似于关系型数据库中的表。但在MongoDB中的表（就是集合）是没有模式的，你可以将完全不同的文档放入同一个集合中.但在实际使用中，为特定集合隐性规定一种模式。注：当集合里没有任何文档时集合其实也是不存在的。当第一个文档插入时，集合就会被创建。&amp;nbsp;&lt;br>3.数据库(database):在MongoDB中，一组集合可以组成一个数据库。一个MongoDB实例可以承载多个数据库。每个数据库都有独立的权限控制。在实际应用中，通常，一个应用的所有数据放置在一个数据库中。&amp;nbsp;&lt;br>4.数据类型：MongoDB中的文档类似于JSON。JSON是一种简单的数据交换格式，在数据类型方面，只支持：null，布尔，数字，字符串，数组和对象。这几种类型在某些实际应用中表现力还是不够，比如JSON本身不直接支持日期类型，对于数字，JSON本身也没法区分整数和浮点数，更不能区分32位数字和64位数字。为此，MongoDB再保留了JSON的各类特性外，又为其添加了一些数据类型。&amp;nbsp;&lt;br>1.null：用于表示空值或不存在的字段。Shell中这样表示：&lt;code>{"x"：null}&lt;/code>&amp;nbsp;&lt;br>2.布尔：有两个值，true和false。Shell中这样使用：&lt;code>{"x"：true}&lt;/code>&amp;nbsp;&lt;br>3.数字：Shell中数字均为64位浮点数，如在Shell中&lt;code>{"x"：3.14}&lt;/code>和&lt;code>{"x"：3}&lt;/code>这两个文档中的值均是64位的浮点数。&amp;nbsp;&lt;br>4.字符串：这个用的最广，Shell中这样表示：&lt;code>{"x"："hello world！"}&lt;/code>&amp;nbsp;&lt;br>5.日期：这个在数据存储时，存储的是从标准纪元开始的毫秒数，没有存储时区信息。&amp;nbsp;&lt;br>6.正则表达式：文档中可以包含正则表达式，采用JavaScript的正则表达式语法即可，Shell中这样表示：&lt;code>{"x"：/foobar/i}&lt;/code>。&lt;br>7.数组：数组是一组值，既可以表示为有序对象（列表，栈，队列等）也可以表示无序对象（集合），Shell中这样表示一个数组：&lt;code>{"things"：["pie"，3.14]}&lt;/code>。&amp;nbsp;&lt;br>8.内嵌文档：把一个文档整个作为另一个文档某一个键对应的值。&amp;nbsp;&lt;br>其他包括二进制数据，代码等。&lt;/p>&lt;h3 id="mongodb入门shell基本操作" data-anchor-id="60is">MongoDB入门(Shell基本操作)&lt;/h3>&lt;p>&lt;span>shell是一个功能完备的JavaScript解释器，可运行任意的JavaScript程序。这里不做示例。&amp;nbsp;&lt;/span>&lt;br>&lt;span>MongoDB的默认数据库为"db"，该数据库存储在data目录中。&amp;nbsp;&lt;/span>&lt;br>&lt;span>1.选择数据库&lt;/span>&lt;/p>&lt;p>&lt;/p>&lt;pre lay-lang="Python" class="layui-code" skin="notepad">#选择名test数据库
use tset&lt;/pre>&lt;p>&lt;span>如果忘记了数据库名称可以输入如下代码查询所有数据库名称："show dbs" 命令可以显示所有数据的列表&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">show dbs&lt;/pre>&lt;p data-anchor-id="5h1c">查看数据库中的集合名：&lt;/p>&lt;div>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">show collections&lt;/pre>&lt;p>&lt;span>下表列出了 RDBMS 与 MongoDB 对应的术语：&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;img src="https://pangyd.com/uploads/2019/05/ebe16666a468bd09.png" alt="2017-05-17_170031.png">&lt;br>&lt;/span>&lt;/p>&lt;h3 id="插入文档" data-anchor-id="3jei">插入文档&lt;/h3>&lt;/div>&lt;p>&lt;/p>&lt;p data-anchor-id="hbt8">insert函数可将一个文档插入到集合中去。以一个博客举例。先创建一个叫post的变量(JavaScript对象)有三个键和对应的属性。插入代码：&lt;/p>&lt;p data-anchor-id="hbt8">&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">db.blog.insert(post)&lt;/pre>&lt;p>&lt;span>批量插入&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">db.blog.insertMany([{"_id":0},{"_id":1},{"_id":2}])&lt;/pre>&lt;h3 id="查询文档" data-anchor-id="6u2w">查询文档&lt;/h3>&lt;p>&lt;/p>&lt;p data-anchor-id="p2pt">查询代码如下：&lt;/p>&lt;p data-anchor-id="p2pt">&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">db.blog.find()&lt;/pre>&lt;p>&lt;span>多出来的"_id"就是MongoDB自动创建的默认为ObjectID类型的对象。在一个集合里，每个文档都由唯一的"_id",确保集合中的每个文档都能被唯一标识，它采用12字节的存储空间，由24个16进制数字组成。&lt;/span>&lt;/p>&lt;p>&lt;span>如果插入文档时没有"_id"键，系统会为我们自动创建一个。&amp;nbsp;&lt;/span>&lt;br>&lt;/p>&lt;p>&lt;span>若只想查看一个文档，可以用findOne：&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p></description></item><item><title>网站改版301重定向与快速恢复收录解决方法</title><link>https://pangyd.com/post/94-301/</link><pubDate>Wed, 06 Sep 2017 19:20:43 +0800</pubDate><guid>https://pangyd.com/post/94-301/</guid><description>&lt;p>今天终于趋于稳定，起码博客在百度重新收录让我感到一丝欣慰。谷歌和360在昨天就已经恢复了收录。但目前百度搜索的流量仍是本站最多的流量来源，所以直到百度有了收录我才松了口气。对于看重SEO的人，对收录重视程度不必多说。&lt;div>&lt;br>&lt;/div>&lt;div>　　本次恢复收录统计：百度：2天，谷歌：1天，360 ：1天。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　当然只是有了部分收录，并不是所有页面完全收录转移了。估计要等到所有页面转移，权重转移可能需要2个星期甚至一个月。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　自我感觉还不错，因为我之前百度了一下前辈们是怎么处理这种事情的，发现有的人一个月还没有被收录。所以我感觉自己真的是很幸运。大家这里不用怀疑我新站的收录会不会是百度的正常收录。因为我可以完全肯定是我自己的功劳。下面我会把自己所做的方法完全分享出来，给大家一个借鉴。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1，&lt;a target="_blank" href="https://pangyd.com/">网站&lt;/a>301重定向。虽然很多朋友都知道什么是301了，但我还是系统的说一下。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div> &lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务 器发出浏览请求时，服务器返回的HTTP数据流中头信息(header)中的状态码的一种，表示本网页永久性转移到另一个地址”。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　这样就明白了，简单看来就是显性的URL转发。实际意义就是告诉搜索引擎这个页面已经永久的被转移到另一个页面了。既然知道了这个301的意义，那如何做301重定向呢?&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1)，可以在域名解析端设置301重定向。现在一般的域名解析服务商已经提供301重定向的功能，如DNSPOD，但是需要域名转入1个月以后，而且需要审核。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2)，服务器端301重定向，现在大部分虚拟主机管理面板都提供了这一选项。比如我用的DA。或者一些国内的面板都有。(因为面板不同，具体方法可以留言，我帮助你。或者自行百度。这里就不在叙述。)当然如果你是VPS用户或者服务器用户因为面板自己安装可能就没有这一功能，那么你可以使用方法1或者3。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　IIS重定向的方法：Internet信息服务管理器 -&amp;gt; 虚拟目录 -&amp;gt; 重定向到URL，输入需要转向的目标URL，并选择&amp;quot;资源的永久重定向&amp;quot;。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3)，代码重定向，这个就是比较通用的了，用代码的方式实现301重定向&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1.301重定向之ASP&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2、301重定向之PHP&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　Header( &amp;ldquo;HTTP/1.1 301 Moved Permanently&amp;rdquo; ) ;&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　Header( &amp;ldquo;Location: https://www.&lt;em>&lt;strong>.com&amp;rdquo; );&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　?&amp;gt;&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3、301重定向之NET&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　还有的虚拟主机自带了配置文件，使用方法如下。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　把下面一段代码 保存为 httpd.ini 放到web里。网址换成自己。实现301跳转.&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　[ISAPI_Rewrite]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　CacheClockRate 3600&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RepeatLimit 32&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteCond Host: ^&lt;/strong>&lt;/em>.com&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteRule (.&lt;em>) https://www.&lt;/em>&lt;em>&lt;em>.com$1 [RP]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　下面是.htaccess的代码&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteEngine On&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteCond %{http_host} ^ycyskycom [NC]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteRule ^(.&lt;/em>)$ https://www.&lt;/em>**.com/$1 [R=301,L]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2，既然做好了网页重定向，那么下一步就是去百度站长平台提交改版规则。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　以下是百度站长平台的改版规则说明及其我网站改版提交的规则截图&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div> &lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　改版范围说明域名改版：会将此站点其子站点下所有的页面进行改版处理。比如当前站点为 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，域名范围的改版会将 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，http://wenku.baidu.com/，http://tieba.baidu.com/ 等站点的所有页面一并做改版处理。目录改版：支持当前站点的目录和子站点的目录，把此目录下的URL做改版处理。比如当前站点是 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，改版范围是 &lt;a href="https://wenku.baidu.com/ac/">https://wenku.baidu.com/ac/&lt;/a>，则会将 &lt;a href="https://wenku.baidu.com/ac/1.html">https://wenku.baidu.com/ac/1.html&lt;/a>，http://wenku.baidu.com/ac/2.html 等URL做改版处理。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　规则提交后，一般48小时内会反馈预计处理时间，每天更新一次处理进度。期间您可以通过以下方法来查看改版处理情况：关注新网站的抓取异常情况，短期内适当提升抓取压力帮助新网站更快抓取;关注新网站的索引量波动，关注网站改版工具显示的已替换链接条数;同时对旧网站的域还需保留一段时间，直到新网站在百度索引和展现效果佳。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　注：在站长平台提交改版规则很重要，如果提交的话，可能收录很快恢复，像我的两天就有了新的收录，如果收录是新站的话，是不可能的，即便有收录，也不会先收录内容页而不收录首页。所以这一部很重要，但需要注意的是，提交之前务必做好301重定向。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3，向百度提供sitemap，也就是网站结构化地图。因为每个网站系统不同的原因构架也不同，这里也不好说什么，但是百度站长平台提供了Discuz!和Wordpress结构化的插件，可以简易的提交网站sitemap。但也会相应的增加服务器负担。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　注：平常最好也使用，不必301重定向时才使用。(服务器负担问题这里不计算，请自行测试。)&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　4，网站链接&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　这个就不必说太多了，因为平时大家可能做的最多的就是外链与友链。写在301重定向这里的意思就是希望大家尽快把友情链接转移到新域名处，增加新域名的权重，而外链就要重新去发喽。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　写到这里，本篇&lt;a target="_blank" href="https://pangyd.com/">文章&lt;/a>就结束了，因本人才疏学浅，写此文章也纯属一时兴起，如有不正确的地方希望予以包含和指正。感谢www.ycysky.com站长投稿!&lt;/div>&lt;/p></description></item><item><title>个人失败的网站运营经历，三年一分钱没赚到</title><link>https://pangyd.com/post/93/</link><pubDate>Tue, 05 Sep 2017 18:10:27 +0800</pubDate><guid>https://pangyd.com/post/93/</guid><description>&lt;p style="text-align: justify">如果是三年前的自己，根本就不会想过三年后会是这个样子——运营三年一分钱都没有赚到。服务器成本、域名成本等硬性成本全部都是自讨腰包。其他人工推广维护根本就无法计算。&lt;/p>&lt;p style="text-align: justify">今天，三年前的续费即将过去到期，开始思考着自己是该继续续费还是放弃。&lt;/p>&lt;p style="text-align: justify">叹屌丝逆袭多么的艰难。一开始想的是多么的美好。“建立一个内容丰富的网站，有图片、文字、聊天、交友。运营一段时间内流量上来了就挂谷歌adsense赚取点费用维持服务器成本。后期通过这个网站盈利，想着日赚XXX的美梦。”但是没有想过结局跟网上吹的那种日赚XXX是多么的天壤之别。&lt;/p>&lt;p style="text-align: center">&lt;img alt="个人失败的网站运营经历，三年一分钱没赚到 好文分享" title="个人失败的网站运营经历，三年一分钱没赚到 好文分享" src="https://pangyd.com/uploads/2017/09/d5731b7a2fec55d4.jpg" width="590" height="417">&lt;/p>&lt;p style="text-align: center">（博文配图，图片与作者本文无关）&lt;/p>&lt;p style="text-align: justify">&lt;strong>第一年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">挂&lt;a href="https://lusongsong.com/info/post/310.html" target="_blank">adsense&lt;/a>，半年多了还不到100人民币，点击单价越来越低而且要多低就有多低，基本上等于免费挂谷歌的广告。虽然网站流量每天在1K,PV在2K左右，但对于盈利仍旧是无计可施。&lt;a href="https://baidu.com" target="_blank" class="keywordlink">百度&lt;/a>收录有谷歌收录访客有流量但是根本就赚不到钱。看到这样的情况，满腔热情有点被泼冷水的感觉，但是还是坚持，心里想着是网站挂着又没事。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第二年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很悲催，谷歌adsense不给任何理由就把我的网站域名给封了。之后我想过去挂百度联盟的广告，很可惜，没有备案网站是放不了百度的联盟广告的。还有其他的联盟比如阿里妈妈，根本就不用去挂的。网站每天没有几千几万流量，挂几十年收入都是0!剩下的其他一些杂乱的广告联盟商，不想去浪费时间，看到他们的广告感觉很低俗、如果网站上面挂了那样的广告给人的感觉就是一个s情h站!都是些卖w哥、壮阳、或者luo聊、同城交友(那种)、游戏弹窗，挂马的广告。如果放这样的广告到自己的网站上，只能是饮鸩止渴。很悲催的，服务器费用仍旧是自己掏腰包。而且已经一种不管他的状态。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第三年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很多人都说如果一个网站已经运营了超过2年还是不盈利，那么这个网站可以关闭了。现在想起来，觉得确实是的，2年的时间，已经不是新站了。但是仍旧不是盈利状态，只能说明运营不善。第三年里面很心灰意懒，不想去给网站加什么内容，只是定期备份，检查网站是否可以正常使用是否可以正常运行。访问流量还是那样差，每天才2K IP左右。雪上加霜的是在2012年六七月份的时候，百度k站了，流量直线下降90%。后来虽然收录上回升了一半，有1万多。但是每天来自百度的流量始终都是0，切切实实始终都是0。没有流量，更别提盈利，让自己更觉得心灰意懒。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第四年：今年现在2013。&lt;/strong>&lt;/p>&lt;p style="text-align: justify">静下心来思考，开始反思。想到了自己为什么要做这个网站，觉得有点可笑，一开始想着通过运营网站赚钱，结果却是一直都是自掏腰包赔本。自己该继续运营下去还是直接放弃?不由得想到了网站的最终结果：收点小钱而已，不用自己掏腰包去垫付服务器的成本费和域名的注册费。&lt;/p>&lt;p style="text-align: justify">&lt;strong>自己该继续坚持下去吗?&lt;/strong>&lt;/p>&lt;p style="text-align: justify">跟别人交流了很多次，把网站给了很多人看。&lt;/p>&lt;p style="text-align: justify">很多人打开一瞪眼就说网站太丑了，一个图片都没有，一个动画都没有，不想继续访问下去，想直接关闭。有的人说访问速度太慢了。其实是因为我网站没有beian，只能放在国外，虽然已经算是最快的服务器了，但是访问速度还是很慢。没有办法，自己网站一直都是不盈利不赚钱，哪有那么多钱去升级服务器买好的服务器?也给了一些SEO人士看，都说出来的是网站没有外链，很少。基本上没有在外面宣传推广过一样。因为自己没有那么多精力去推广，只能三天打鱼两天晒网。&lt;/p>&lt;p style="text-align: justify">网站运营的第四年，也许自己已经明白了这个网站为什么一直都是这么没有起色，没有流量也没有收益。看到很多域名注册不到1年的网站流量、收录都异常火爆、权重非常高，让自己觉得奇怪，自己一开始认定的域名越老越权重高，而自己的网站已经运营了三四年了，百度权重还是0、谷歌pr也从原先的2降到了0。&lt;/p>&lt;p style="text-align: justify">回想自己这三年来的付出，经常熬夜通宵达旦的修改网站程序源码，基本上已经把网站源码改得地覆天翻。经常为了调节一个细小的代码优化而废寝忘食、甚至一整天坐在电脑前一动不动，没时间上厕所没时间吃饭睡觉洗漱。等于就是在自己做一个PHP CMS系统。但是网站做好之后就坐等搜索引擎收录，靠天吃饭一样，搜索引擎那天心情不好自己就一个字都别想了。发现很多网站他们的程序根本从来都不改动一下，直接CMS下载来加内容，域名也注册不到1、2年，但是流量收录PR权重非常高、人气非常火爆。对比之下，自己显得多么相形见绌，开始深刻的怀疑一开始自己信定的域名越老人气越旺的谬论。&lt;/p>&lt;p style="text-align: justify">打开自己的网站，发现网站界面确实是那么的丑陋，因为自己不会PS不会图片处理，也不会仿站，所以网站界面一直都是那么的丑陋，以前给别人看自己的网站，也许这是大部分写代码的人的不足之处，不会设计界面，不会美工。&lt;/p>&lt;p style="text-align: justify">&lt;strong>思考、总结了很多，明白了自己失败的所在：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">一网站界面太丑陋，不会美工设计、logo都是非常难看的。&lt;/p>&lt;p style="text-align: justify">二从来没有推广宣传过只是坐等搜索引擎收录，靠天吃饭。&lt;/p>&lt;p style="text-align: justify">三网站服务器太差，舍不得升级好一点的。死做站，只会改程序而其他的根本就从不顾及。&lt;/p>&lt;p style="text-align: justify">四从来没主动去寻找过广告商，日IP 2K其实挂一个其他的广告就可以满足服务器费用了，但是没有去寻找也丢失了盈利的欲望。&lt;/p>&lt;p style="text-align: justify">网站已运营三年，败在了方向上。很少推广……唯一做得最多的就是程序，死改、死改!完全的倾向与技术性。死改程序死改程序，死读书一样。&lt;/p>&lt;p style="text-align: justify">&lt;strong>但是我该继续下去吗?&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很多科学的统计，中国的个人站长至少80%都是不盈利，任何费用都是自己出，其他人工的维护、推广宣传人力精力更不包含在内。另外10%是勉强可以赚得点服务器费用和域名费用。只有剩下10%不到的才收入大于支出，但是剩余不一定抵得上他的其他付出——时间精力人力推广。&lt;/p>&lt;p style="text-align: justify">同时也想到了自己网站，主题主题、发展模式要被复制太容易了。个人站长真的力量太薄弱，有什么变动，就立即会夭折。一切都是迷路。感言：个人建站小打小闹还可以但是真的想通过建个网站来运营就逆袭，只能是想的太离谱。&lt;/p>&lt;p style="text-align: justify">本文作者：&lt;a href="https://www.im286.com/thread-11086188-1-1.html" target="_blank" rel="nofollow">foho&lt;/a>&lt;/p>&lt;p style="text-align: right">来源：&lt;a target="_self" href="https://pangyd.com/">庞玉栋博客&lt;/a> 欢迎分享&lt;/p></description></item><item><title>庞玉栋:浅谈seo优化对于网站建设的重要性</title><link>https://pangyd.com/post/91-seo/</link><pubDate>Mon, 04 Sep 2017 19:09:42 +0800</pubDate><guid>https://pangyd.com/post/91-seo/</guid><description>&lt;p>根据最近做SEO优化经验而写 &amp;nbsp;写的也都是我的方法 大神勿喷&lt;/p>&lt;p>SEO：英文Search Engine Optimization缩写而来， 中文意译为搜索引擎优化&amp;nbsp;&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>如果你连个网站都没有那就点这里：&lt;a target="_self" href="https://pangyd.com/post/90/">&lt;b>如何拥有一个属于自己的网站&lt;/b>&lt;/a>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>现在的中国搜索引擎 百度是无可置疑的老大 &amp;nbsp;在以前 是谷歌 百度 和soso平分天下 只从谷歌退出江湖 &amp;nbsp;百度就成了第一 soso自然也就排名第二 那为什么现在看不到soso的存在了呢。就是因为soso被搜狗并购 然后360搜索接踵而来 &amp;nbsp;现在最主要的搜索引擎也就成了 百度 搜狗 360搜索&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>一个网站的建设除了把网站搭建好 你还要让搜索引擎喜欢你 &amp;nbsp;要不然你的网站就是一个死站 &amp;nbsp;基本上没有什么人访问&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>那怎么样才能让搜索引擎喜欢你呢 &amp;nbsp;&lt;/p>&lt;p>简洁的站点结构 代码结构良好 层次分明 这样更容易吸引搜索引擎的爬虫光临 收录你的网站&lt;/p>&lt;p>第一就是你网页的内容 &amp;nbsp;爬虫会先爬取你meta标签里的内容 &amp;nbsp;所以网页的内容一定要和关键字想匹配还有就是关键词的密度一定要在全文占比的2%左右 &amp;nbsp;可以用站长工具的密度查询工具&lt;/p>&lt;p>第二是锚链接 &amp;nbsp;锚链接就是你网页内容中文本所链接超链接 &amp;nbsp;爬虫更喜欢爬这种页面 &amp;nbsp;但是锚链接一定要跟文本内容相匹配 &amp;nbsp;再之就是不要过过 &amp;nbsp;一个页面的锚链接在两个左右就可以&lt;/p>&lt;p>第三是图片的alt标签一定要写上 &amp;nbsp;可以在上面加点关键词 以增加网页关键词的密度 &amp;nbsp;一举两得 &amp;nbsp;&lt;/p>&lt;p>有一句话就是 &amp;nbsp;内容为皇 &amp;nbsp;外链为王 &amp;nbsp;&lt;/p>&lt;p>网页的内容为主要的 其次就是你域名在别的网站所在的数量 &amp;nbsp;建议多在各种博客和论坛多写点文章 &amp;nbsp;然后把超链接加到文本上 &amp;nbsp;这样会增加外链的数量 &amp;nbsp;还有就是选择权重和收录量比较高的网站 &amp;nbsp;这样怕虫子在爬网站的时候会查看你的超链接 &amp;nbsp;吸引爬虫更多的光临你的网站 &amp;nbsp;然后还有友链 就是友情链接 可以跟别的网站交换友情链接 &amp;nbsp;这也是seo优化的一部分 &amp;nbsp;&lt;/p></description></item><item><title>关于 JCombobox</title><link>https://pangyd.com/post/47-jcombobox/</link><pubDate>Wed, 09 Aug 2017 21:42:14 +0800</pubDate><guid>https://pangyd.com/post/47-jcombobox/</guid><description>&lt;p>&lt;span>构造函数&lt;/span>&lt;span>&amp;nbsp;&lt;/span>&lt;/p>&lt;span>JComboBox()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 创建具有默认数据模型的 JComboBox。&amp;nbsp;&lt;/span>&lt;br>&lt;span>JComboBox(ComboBoxModel aModel)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 创建一个 JComboBox，其项取自现有的 ComboBoxModel 中。&amp;nbsp;&lt;/span>&lt;br>&lt;span>JComboBox(Object[] items)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 创建包含指定数组中的元素的 JComboBox。&amp;nbsp;&lt;/span>&lt;br>&lt;span>JComboBox(Vector&amp;lt;?&amp;gt; items)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 创建包含指定 Vector 中的元素的 JComboBox。&amp;nbsp;&lt;/span>&lt;br>&lt;br>&lt;span>常用方法&amp;nbsp;&lt;/span>&lt;br>&lt;span>addActionListener(ActionListener l)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加 ActionListener。&amp;nbsp;&lt;/span>&lt;br>&lt;span>addItem(Object anObject)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 为项列表添加项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>addItemListener(ItemListener aListener)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加 ItemListener。&amp;nbsp;&lt;/span>&lt;br>&lt;span>configureEditor(ComboBoxEditor anEditor, Object anItem)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 利用指定项初始化编辑器。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getEditor()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回用于绘制和编辑 JComboBox 字段中所选项的编辑器。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getItemAt(int index)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回指定索引处的列表项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getItemCount()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回列表中的项数。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getModel()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回 JComboBox 当前使用的数据模型。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getRenderer()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回用于显示 JComboBox 字段中所选项的渲染器。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getSelectedIndex()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回列表中与给定项匹配的第一个选项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>getSelectedItem()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 返回当前所选项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>insertItemAt(Object anObject, int index)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在项列表中的给定索引处插入项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>isEditable()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果 JComboBox 可编辑，则返回 true。&amp;nbsp;&lt;/span>&lt;br>&lt;span>removeAllItems()&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从项列表中移除所有项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>removeItem(Object anObject)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从项列表中移除项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>removeItemAt(int anIndex)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 移除 anIndex 处的项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>setModel(ComboBoxModel aModel)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置 JComboBox 用于获取项列表的数据模型。&amp;nbsp;&lt;/span>&lt;br>&lt;span>setRenderer(ListCellRenderer aRenderer)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置渲染器，该渲染器用于绘制列表项和从 JComboBox 字段的列表中选择的项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>setSelectedIndex(int anIndex)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 选择索引 anIndex 处的项。&amp;nbsp;&lt;/span>&lt;br>&lt;span>setSelectedItem(Object anObject)&amp;nbsp;&lt;/span>&lt;br>&lt;span>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 将组合框显示区域中所选项设置为参数中的对象&lt;/span></description></item></channel></rss>