关于网站架构的微妙想法

当然,我们身在WIT-e中。自己的ERP系统(在这里写这个– 没有1C我们怎么办?),自己的CRM系统,自己的M2M(用于与分销商进行通信)(“您还知道什么其他聪明的词和缩写?”)。当然,您的WWW处理方法也应保留在此3个字母范式的框架内。

一切始于对Microsoft的热爱,并且90年代后期该网站的某些早期版本是使用ASP技术制作的,并作为其下的数据库放置了常规的MS Access文件。顺便说一句,供应商还提供虚拟主机上的ASP,其升级到ASP.NET后18年-在这里你必须在其所有的荣耀遗留系统。

通常,这非常方便-由于内部数据库也是用MS Access编写的,因此为站点准备数据的过程非常简单,无需从一种数据格式重新转换为另一种数据格式(例如MySQL)。 Access支持“ IN <外部数据库名称>”形式的SQL语言扩展,可以在任何DML指令后添加:INSERT,UPDATE,DELETE(这是另一个3字母缩写)。

当然,随着此链接的增长,它开始毫不客气地刹车(另外,不清楚mdb文件何时与数据库锁定一起锁定,从而使整个站点都崩溃了)。从站点到ASP.NET的转换并不能从根本上解决问题,也有必要切换到以MS SQL Server为基础,但是此过程却朝着另一个方向发展。让我们从稍微不同的角度来看一下改善网站性能的问题。

(顺便说一句,我的1Gb.ru提供程序写到ASP.NET平均比标准LAMP捆绑包(Linux / Apache / MySQL / PHP)快,这对我来说是一个启示。但是,我在这里可以信任谁,因为它不是整体的运营商? )

免责声明 -后续观点一方面代表了某种理论上的建构,然后逐渐提升为绝对,这通常意味着沦为荒谬,另一方面又是具体的实现,因此不能说作者处于幻想之中并完全脱离了现实。现实。

问题1.为什么站点下应该有一个数据库?

好吧,真的,你们都钦佩内存数据库的速度,对吗?那么,为什么要走远一点,让自己在您的网站下正确。甚至更多。在初始初始化时,将所有数据整体加载到站点级别可用的数组中(ASP.NET中的Application对象,PHP中的Global Variables,以下简称无处不在),而不是向数据库写查询,而是遍历这些数组。任何适合初始数据加载的内容-相同的MS Access数据库,但至少是文本CSV文件! -该操作很少执行,其执行时间不起作用。

有问题,但我们已经有现成的答案。

  1. , - , ? – ( , -), — ,
  2. ( ) . . – ( ) , ? , – / , – , . . Catalog ( -!) 2 – :



    MinIndex MaxIndex. , - ( ) – Parts ID Catalog, – .

注意,这个想法可以继续下去。就像将数据从站点下的数据库传输到站点本身的数据结构一样,生成网页时,也需要将数据放置在其结构本身中,即JavaScript数组中。而且没有AJAX,异步,通信错误处理等。因此,它是在我们网站上包含各种配置程序的页面上完成的。

顺便说一句,与数据库文件不同,Web服务器(和Web浏览器,尽管有警告)的内存中数组的大小大约等于其二进制表示形式,而其中具有单个表的空数据库已经在使用数百千字节。

问题2.为什么我需要在Web服务器上使用脚本?

我将代码片段分成几行,故意简化并以最疯狂的编程语言-VBA(1C除外)

        Set IE = CreateObject("InternetExplorer.Application")

        IE.Navigate "wit.ru"
        While IE.ReadyState < READYSTATE_COMPLETE
        Wend

        Set str = IE.Document.DocumentElement
        HTML = str.innerhtml

该代码执行以下操作-通过一个知名公司曾经非常流行的浏览器运行该页面,并将将服务器脚本编制为纯HTML的结果保存下来。您猜对了,接下来会提供什么?完全正确-在上世纪90年代,完全有可能将站点制作为纯HTML。

(同样来自1GB.ru:“IIS非常快速有效地处理对静态文件的请求”)

同时,您可能需要担心将
wit.ru/card.aspx?id=23&prodid=1022985之类的地址转码
为静态网址Pages也是一种众所周知的Web服务器调整技术,最初是为欺骗搜索引擎和Web优化而发明的。

在这里,可能有必要制定出所有其他原则的基本原则。我们在为网站准备数据上花费的时间和资源越多,他就越容易显示它并且能够更快地进行显示。在这种情况下,我们的后端可以以连续模式工作,以所需的频率在站点上吐出就绪的数据。而且,这种方法在所有情况下都适用,当然,某些Amazon或Alibaba的交换摘要或窗口除外,这些交换或摘要或数据每秒都在变化。

结论


我知道文章中的问题太过尖锐,因此提出了非标准解决方案。我会冒险建议(这根本不是我的主题)这种方法适用于任何嵌入式系统,否则,在较弱的计算设备上,您必须放置一个小型数据库引擎和一个脚本处理程序,而不是最简单的Web服务器(以更多的内存消耗-操作和恒定)。

All Articles