當前位置:首頁 » 編程語言 » 手寫sql引擎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

手寫sql引擎

發布時間: 2022-12-30 10:18:32

A. 如何查看my sql資料庫的引擎

一般情況下,mysql會默認提供多種存儲引擎,你可以通過下面的查看:

看你的mysql現在已提供什麼存儲引擎:
mysql> show engines;

看你的mysql當前默認的存儲引擎:
mysql> show variables like '%storage_engine%';

你要看某個表用了什麼引擎(在顯示結果里參數engine後面的就表示該表當前用的存儲引擎):
mysql> show create table 表名;

B. 如何選擇基於Hadoop的SQL引擎

在Hadoop和NoSQL技術中,人們逐漸把焦點轉移到了Hadoop上的SQL引擎。今天,可選擇的引擎越來越多,反倒讓組織陷入了選擇困境。本文將羅列幾點選擇引擎時需要考量的因素,供您參考。
基於Hadoop的SQL技術一大優勢在於可以使用熟悉的SQL語言,訪問存儲在Hadoop中的大數據集。
用戶幾乎可以應用任何報表或工具來分析和研究數據。在Hadoop上還不能應用SQL的時候,要訪問Hadoop中的大數據集,需要十分了解Hadoop
的技術應用程序界面,比如HDFS、MapRece或HBase。現在有了基於Hadoop的SQL引擎,每個人都可以使用他喜歡的工具了。對企業而
言,相當於Hadoop開放了更大的窗口,有更多的企業可以應用Hadoop處理大數據。
有哪些技術可以選擇

第一個基於Hadoop的SQL引擎是Apache Hive,不過過去一年裡,有很多新產品出現,包括CitusDB、Cloudera
Impala、Concurrent Lingual、Hadapt、InfiniDB、 JethroData、MammothDB、Apache
Drill、MemSQL、Pivotal HawQ、Progress DataDirect、ScleraDB、Simba和Splice
Machine。
除了上述引擎之外,數據虛擬化伺服器也應在此列,因為它們對Hadoop數據實現了SQL訪問。虛擬化伺服器可以訪問所有數據源,包括Hadoop,不同的數據源都可以集成。數據虛擬化伺服器有很多,包括Cirro Data Hub、Cisco/Composite

當然,還有一些SQL資料庫管理系統也支持多種數據源。它們在自己的SQL資料庫或Hadoop中存儲數據,提供對Hadoop數據的SQL訪問。比如
EMC/Greenplum UAP、 HP Vertica (on MapR)、Microsoft PolyBase、Actian
ParAccel 和Teradata Aster Database (via SQL-H)。
這么多基於Hadoop的SQL工具可以使用,可以說是讓組織眼花繚亂。那麼該如何選擇呢?它們彼此的差別又在哪呢?
事實上,不同的技術之間差別很大,比如說,CitusDB知道數據存儲在哪裡,可以更快地訪問數據;JethroData存儲索引,可以直接訪問數據;Splice Machine提供交易型SQL界面。
要選擇正確的技術,需要比對細節。以下是具體的考慮因素:
SQL語言
支持的SQL語言越多,能使用的應用程序也就越多。並且,支持的語言越豐富,Hadoop能運行的查詢程序就越多,應用和報表工具要做的就越少。
節點連接
在大表上快速有效地執行節點連接並不容易,尤其是在SQL引擎不知道數據存儲在哪的情況下。效率低下的連接過程會導致大量的I/O,以及不同節點之間巨大的數據傳輸,最終影響處理速度。
非結構化數據
SQL是為結構化數據設
計的。表中的每一條記錄都位於同一列,每一列都有同樣的屬性。但在大數據時代,並不是所有的數據都是結構化的。Hadoop文件中可能包含嵌套的數據、可
變的數據(具有層級結構)、無模式的數據和自我描述的數據。基於Hadoop的SQL引擎必須能夠把所有數據都轉換為關系數據,並優化這些數據之間的查
詢。
存儲模式
Hadoop支持一些標准存儲格式,比如Parquet、Avro和ORCFile。基於Hadoop的SQL技術使用的格式越多,其他引擎和技術能夠讀取的格式也就越多。這極大地減少了復制數據的工作。
用戶定義函數
要在SQL上執行復雜的分析函數,比如高斯判別分析和購物籃分析等,很重要的前提是SQL對該函數的支持。這樣的函數被稱為用戶定義函數(UDF)。基於Hadoop的SQL引擎需要能夠在多節點上分部執行用戶定義函數。
多用戶工作負載

還需要考量的一個因素是,引擎應該如何在不同的查詢和不同類型的查詢之間劃分資源。比如,不同應用程序的查詢有不同的處理優先順序;需要運行較長時間的查詢
應該讓位於需要立即處理的查詢;如果計劃外的或資源密集型的查詢佔用很多資源的話,應該被取消或暫停查詢。基於Hadoop的SQL技術需要更加智能的工
作負載管理。
數據聯合
並不是所有的數據都存儲在Hadoop中。大部分企業數據還存儲在其他數據源中,比如SQL資料庫。基於Hadoop的SQL引擎需要支持存儲在不同類型數據源中的數據的連接。換言之,它必須支持數據聯合。
應用Hadoop的企業部署SQL引擎是大勢所趨。企業在選擇不同技術的時候,希望能考慮到上述因素。

C. 電子商務網站一般架構有哪些

大型電子商務網站架構,摘抄 7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?===客戶是自己公司,使用標准方法即可
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?===采購成熟的規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
==電子商務一般要使用MQ,推薦IBM MQ;使用MSMQ也可
第一點是資料庫要設計好,要達到什麼級別,你可能需要考慮哪些表需要拆分,哪些表的核心數據需要冗餘,如果是mysql,還要考慮其他的問題,比如存儲引擎。
新聞肯定是要生成純靜態頁,對資料庫壓力就小很多,不過靜態頁也有管理上的不方便,更新刪除添加都要對磁碟文件進行操作
做一個自定義緩存層,對緩存邏輯進行控制,可以採用第三方緩存模塊,如果使用.net來做,可以層層緩存,頁面緩存,數據緩存(memcache,不過在win下效率不高)
電子商務網站特點就是對事務的嚴格,需要資料庫設計的時候要求高性能,也需要合適的索引,支持高並發,經常對產品表用戶表等進行索引檢查,是否有很多索引掃描和表掃描(即使是局部的,也要將「局部」控制到最小范圍)
mssql語句對不需要事務的查詢要附帶上with(nolock),以利於並發更新。
有些功能模塊不能按照想當然的方式開發,比如產品訪問次數,切不可將這些更新非常頻繁的欄位置於核心表內,明確的做法是將其剝離開來 還有就是切不可經常性將欄位設計成bool類型,這樣會給以後的擴展留出路,即使是男女這種欄位,也建議採用tiny類型
其他還有就是在產品設計的時候充分考慮seo,網站目錄結構清晰可讀,而不是帶著一串串的查詢參數。
對安全要有整體的把握,最好全都是用存儲過程,在項目上線前將資料庫存儲過程全部導出再查找貌似exec的語句,查找是否需要替換成sp_executesql。
另外,如果採用mssql,全文搜索直接用mssql fte就可以,速度和精確度都還是可以的,最重要的是維護和管理開發很簡單。
打折的處理可以按照電信的一次,二次批價功能,如果你做過電信方面的系統。
當然也可以設計得更簡單的一些。 靜態的頁面建議使用CDN加速,以解決網通和電信之間訪問速度的問題;
數據的緩存方面建議考慮用memcache,另外也可以分別在表現層和數據層利用.net中的現存緩存機製作業可;
簡單執行的sql可以不用存儲過程,存儲過程會佔用資料庫伺服器的處理時間,造成死鎖;
mvc建議還是做些CMS的項目上應用,電子商城不是很適合,個人觀點。url上可以做轉義,使url顯示更友好;
資料庫建議建立分布資料庫,這樣可以轉移查詢和大訪問量對資料庫帶來壓力;
圖片可以考慮單獨放在一台伺服器上;1.三層架構
2.使用手寫sql,手寫entity(生成也可),緩存反射綁定(不是緩存數據哦,緩存映射關系),要考慮網站的長期發展還是手寫吧 靈活 性能也好
3.沒有這種問題,商業驅動的,純購物就好了,千萬別搞什麼圈子,wiki
4.純.net的mvc不建議,webform不搞viewstate,不搞服務端控制項(除repeater)再加點mvc的思想已足夠用了
5.不需要緩存數據(除搜索產品部分),要考慮多台伺服器的程序快速部署,config文件會很多,config要序列化緩存
6.當然是先生成好了,參照jd吧,按業務每張圖片對應幾個不同大小的圖
7.據經驗,電子商務網站僅靠中英雙語來達到多語言是不靠譜的(文化 用戶習慣不是簡單的語言切換),如果想真正運營英語的就要重新開發一個版本
8.不搞模式
9.負載均衡(web,db)+ssb非同步處理數據
10.你是業務類型的日誌還是異常日誌? 前台訂單流程上異常日誌不需要了,找個工具錄個腳本不停的跑 保證隨時發現問題發郵件就可以了
11.找第三方搜索組件 類似endeca的
12.負載均衡挺簡單的,初期靠軟體就可以,一切圖片找第三方放cdn,前台網站用到ajax的地方很少,如果用的話jquery 1,一個電子商務網站用戶99.5%的行為時Find
2、對於商品檢索部分,能不用資料庫就不用資料庫(網上切詞等相關的開源平台很多)
3、分布式緩存(Memcached 、Volecity),個人測試volecity 3還是不錯的
4、系統設計時必須要考慮可運營。從這個角度去設計系統
5、對於電子商務網站改動很頻繁,必須考慮架構設計如何適應頻繁的版本更新
6、必須設計一個好的單點登錄系統。
7、建議能不用sqlserver就不用它。
8、對於大型電子商務網站來說,系統的I/O是起決定因素而不是CPU和內存。1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
項目劃分其實不重要,重要的的是你在寫代碼的時候是否能把代碼合理的分到對應的項目里。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
開發效率優先,訪問量大了以後,我相信是有錢投到硬體上的,在你程序寫的不是很爛的情況下,升級硬體遠比優化程序節省成本。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
那就做成自定義控制項啦。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
推薦使用使用webform的,前台使用mvc,對於前台來說使用mvc能更好的提升性能,更方便的更換頁面表現形式。後台界面相對穩定,用webform可以提高開發效率。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
初期建議用hashtable,因為簡單,將來升級到Memcached 。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成縮略圖的好處是節約性能。httpmodle相反,每次瀏覽圖片的時候都會生成新的圖片,伺服器壓力大,建議直接生成。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
多語言建議使用asp.net自帶的資源文件的方式實現,當前語言保存在cookie裡面。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
使用MQ隊列
10.日誌方面,log4net?
log4net只能記錄程序運行日誌,主要目的是用來調試程序的,系統業務操作日誌還你是得自己建一個表來保存。
11.電子商務的全文檢索,這也是個頭疼的問題
lucene,微軟索引服務,sqlserver全文檢索,方案很多的。
12.負載均衡方面,有什麼好的文章推薦碼?
可以看windows 2003 集群方面的文章 1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
目前我也是這樣分的,不過當數據表結構有修改時,會帶動其它層的聯級修改,非常不方便,所以開發之前最好將資料庫設計地完善一點。另外,當網站分成多個以後,其它項目生成的DLL文件要部署到每個網站的bin文件夾里,更新一次都要重新部署,這也是個挺煩人的事,當然可以將DLL部署到GAC里來解決這個問題,不過這樣的話本地調試起來就不太方便了,因為項目一有改動,就要將生成的DLL重新拷貝到GAC里才能看到效果。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
這個我也在考慮。目前我還沒有採用ORM框架,都是在DAL里直接訪問DB的。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
自定義控制項。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
正在學習這一塊。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
現在我用的比較多的是.net自帶的數據緩存。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成好,快一點。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
我沒涉及到這一塊,不過我覺得資源文件應該就是用來處理這個問題的。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
這些都放在邏輯層好了。
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
MSMQ
10.日誌方面,log4net?
目前我是自已寫代碼存在庫里的。
11.電子商務的全文檢索,這也是個頭疼的問題
用lucene.net分詞建索引,再直接從索引庫里搜索,又快又准。
12.負載均衡方面,有什麼好的文章推薦碼?
不清楚了。 這樣的設計要達到新蛋的效果肯定不可能的,新蛋少說幾百台伺服器,不同資料庫之間的發布訂閱鏈路都有幾千條。有復雜的緩存,負載均衡機制。新蛋所有的通訊都是基於WCF的。另外對於這么大型的網站來說,資料庫一刻都不停止,所以讀寫分離也很重要,因為你也不可能讓資料庫停下來進行備份。總歸要做到新蛋這樣的大型電子商務網站,靠你上面畫的這點好像遠遠不夠。
不過關於公共的header,footer,我不建議做成自定義控制項,這個維護起來不方便,稍有變動就要發布dll,麻煩的。
如果你的header和footer不是很大的話,建議採用js+css的方式。然後加上壓縮和cdn緩存,應該效率上能接受。

D. 大數據運算的三種引擎是什麼有什麼區別

現在流行的開源引擎可不止三個,先羅列5個給你:
1)Hive,披著SQL外衣的Map-Rece。Hive是為方便用戶使用Map-Rece而在外面封裝了一層SQL,由於Hive採用了SQL,它的問題域比Map-Rece更窄,因為很多問題,SQL表達不出來,比如一些數據挖掘演算法,推薦演算法、圖像識別演算法等,這些仍只能通過編寫Map-Rece完成。
2) Impala:Google Dremel的開源實現(Apache Drill類似),因為互動式實時計算需求,Cloudera推出了Impala系統,該系統適用於互動式實時處理場景,要求最後產生的數據量一定要少。
3)Shark/Spark:為了提高Map-Rece的計算效率,Berkeley的AMPLab實驗室開發了Spark,Spark可看做基於內存的Map-Rece實現,此外,伯克利還在Spark基礎上封裝了一層SQL,產生了一個新的類似Hive的系統Shark。
4) Stinger Initiative(Tez optimized Hive):Hortonworks開源了一個DAG計算框架Tez,Tez可以理解為Google Pregel的開源實現,該框架可以像Map-Rece一樣,可以用來設計DAG應用程序,但需要注意的是,Tez只能運行在YARN上。Tez的一個重要應用是優化Hive和PIG這種典型的DAG應用場景,它通過減少數據讀寫IO,優化DAG流程使得Hive速度提供了很多倍。
5)Presto:FaceBook於2013年11月份開源了Presto,一個分布式SQL查詢引擎,它被設計為用來專門進行高速、實時的數據分析。它支持標準的ANSI SQL,包括復雜查詢、聚合(aggregation)、連接(join)和窗口函數(window functions)。Presto設計了一個簡單的數據存儲的抽象層,來滿足在不同數據存儲系統(包括HBase、HDFS、Scribe等)之上都可以使用SQL進行查詢。

E. sql資料庫引擎問題

你打開SQL 配置管理器
是不是有 一個SQL Server(SQLEXPRESS)
這是裝了EXPRESS 服務了
原來的連不上
你看看
SQL Server(MESSQLERVER) 的狀態是不是關閉了呢
打開它試試

F. 簡單明了,大學生都應該知道的SQL

SQL(結構化查詢語言)是用於訪問和操作資料庫中的數據的標准資料庫編程語言。

SQL是關系資料庫系統的標准語言。所有關系資料庫管理系統(RDMS),如MySQL、MS Access、Oracle、Sybase、Informix、Postgres和SQL Server都使用SQL作為它們的標准資料庫語言。

為了處理資料庫和資料庫相關的編程,程序員需要有一些介質,或者可以說介面來詳細說明一組命令或代碼來處理資料庫或訪問資料庫的數據。在本章中,將簡要介紹在學習SQL的過程中您將學習的術語。

SQL為結構化查詢語言提供了獨特的學習和資料庫處理技術,並將幫助您更好地控制SQL查詢並有效處理這些代碼。由於SQL幫助您包括資料庫創建,資料庫或表刪除,獲取行數據和修改這些數據等,並行SQL使得事情自動和平滑,最終用戶可以輕松訪問和處理該應用程序的數據。

雖然 SQL 是一門 ANSI(American National Standards Institute 美國國家標准化組織)標準的計算機語言,但是仍然存在著多種不同版本的 SQL 語言。

然而,為了與 ANSI 標准相兼容,它們必須以相似的方式共同地來支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。

要創建一個顯示資料庫中數據的網站,您需要:

RDBMS 指關系型資料庫管理系統,全稱 Relational Database Management System。

RDBMS 是 SQL 的基礎,同樣也是所有現代資料庫系統的基礎,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的數據存儲在被稱為表的資料庫對象中。

表是相關的數據項的集合,它由列和行組成。

代碼示例:

每個表都被分解成稱為欄位的更小的實體。Customers表中的欄位由CustomerID,CustomerName,ContactName,Address,City,PostalCode和Country組成。欄位是表中的一列,用於維護表中每條記錄的特定信息。

記錄(也稱為行)是表中存在的每個單獨條目。例如,在上面的Customers表中有91條記錄。記錄是表中的橫向實體。

列是表中的垂直實體,其包含與表中的特定欄位相關聯的所有信息。

當您對任何RDBMS執行SQL命令時,系統將確定執行請求的最佳方式,並由SQL引擎確定如何解釋該任務。

在此過程中包含了各種組件。

典型的查詢引擎處理所有非SQL查詢,但SQL查詢引擎不會處理邏輯文件。

與關系資料庫交互的標准SQL命令是創建、選擇、插入、更新、刪除和刪除,簡單分為以下幾組:

數據定義語言用於改變資料庫結構,包括創建、更改和刪除資料庫對象。用於操縱表結構的數據定義語言命令有:

數據操縱語言用於檢索、插入和修改數據,數據操縱語言是最常見的SQL命令。

數據操縱語言命令包括:

數據控制語言為用戶提供許可權控制命令。

用於許可權控制的命令有:

使用SQL格式化工具可以比較直觀地看到您想要的操作

G. .net如何手寫分頁(純手寫)類似於校內的分頁效果

但是分頁的核心不是這個,取決與你的數據訪問技術。 追問: 如何解決手寫分頁的核心技術問題? 回答: 分頁的核心就是你要以何種規則篩選數據。-------------------方法很多,其實到了資料庫執行的時候也就是一條SQL語句罷了,只是針對不同資料庫引擎,使用不同的語句,有不同的性能標准。這取決與你自己的開發環境和部署環境,不存在萬能而又高效的解決方案。比如:用的是老版本的SQL SERVER 2000,可以用TOP去分頁;如果用的是SQL SERVER 2005,就可以用內置的分頁函數ROW_NUMBER去分頁。具體情況具體分析。 追問: 前台如果不用控制項 分頁怎麼寫啊 如果是這樣的分頁又怎麼寫啊 謝謝您的回答 回答: ASP.NET不存在不用控制項的說法,哪怕你只是在頁面上寫兩個字元,在服務端交給ASP.NET運行時編譯的時候也是編譯成服務端控制項的。 追問: 我說的是 不用可以拖動的控制項 手寫分頁 自己的代碼 不用什麼datalist gridview pagesource之類的微軟的控制項 自己寫乾乾凈凈的代碼 回答: 不用也可以,但是沒什麼實際意義,哪怕你只用一個DIV來分頁,下面加幾個label或者input button,生成的代碼也不可能是乾乾凈凈的,因為整個頁面中所有的元素,都要被編譯成服務端控制項處理一次,這樣一來,反而不如用現成的gridview或者是更輕量級的repeapter去分頁效率更高。PS:你整個頁面什麼也不寫,它也不是乾乾凈凈的,這就是服務端開發技術的本質。------------新人很容易走進兩個誤區,一個是唯控制項論:不管幹什麼,都喜歡拖拽一堆控制項。一個是唯手寫論:不管幹什麼,我都要重新創造輪子。這都是學習過程中的必經之路,其實兩個都不好,都是誤區,都是極端,都不能在實際工程中這么去開發。

H. 怎麼把sql_front 表的引擎默認值改成InnoDB

sql_front表的引擎默認值改成InnoDB方法:
方法一:
直接更改存儲引擎
mysql> alter table tt7 engine=innodb;
Query OK, 16777216 rows affected (2 min 39.80 sec)
Records: 16777216 Duplicates: 0 Warnings: 0
方法二:
把方法一中的存儲引擎改回myisam
mysql> alter table tt7 engine=myisam;
Query OK, 16777216 rows affected (27.09 sec)
Records: 16777216 Duplicates: 0 Warnings: 0
從這里也可以看出myisam表要比innodb錶快很多
創建個和tt7同樣表結構的表
mysql> create table tt7_tmp like tt7;
Query OK, 0 rows affected (0.02 sec)
tt7_tmp作為中間結果集
mysql> insert into tt7_tmp select * from tt7;
Query OK, 16777216 rows affected (27.20 sec)
Records: 16777216 Duplicates: 0 Warnings: 0
刪除原表的數據
mysql> truncate table tt7;
Query OK, 16777725 rows affected (0.18 sec)
這回更改原表的存儲引擎
mysql> alter table tt7 engine=innodb;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
速度很快就完成了
再把中間結果集的數據導回原表中
mysql> insert into tt7 select * from tt7_tmp;
Query OK, 16777216 rows affected (2 min 0.95 sec)
Records: 16777216 Duplicates: 0 Warnings: 0
刪除中間表
mysql> drop table tt7_tmp;

I. 有關SQL Server 資料庫引擎

1,如果在電腦上安裝有SQL server,那麼SQL Server資料庫引擎是所安裝的SQL下哪個工具呢?是不是企業查詢器呢?

答:企業查詢器是sql server的應用程序,不是資料庫引擎。資料庫引擎從「開始」-》「管理工具」-》「服務」里可以看到,根據 版本不同名稱不同,但基本都帶關鍵字「SQL SERVER」,這個是你所說的引擎。

2,我們用應用程序進行連接SQL,則跟數據引擎有什麼關系?如果有,從哪裡可以看得出來?

答:當然有,這個不是從哪裡看出來。你連基本概念都沒弄清楚,c/s,b/s是什麼??? 那個s(server)就是你應用程序所連接的資料庫引擎。即資料庫引擎提供了資料庫的服務。你連sql,目的就是使用其提供的服務!

3,書裡面的說資料庫引擎里,有什麼默認實例,還有命名實例,但書裡面講得太理論化了,誰能用一個實例表達一下?

答:默認實例????你說的比書上還理論話啊。什麼意思?「實例」這個詞你在這里指什麼?你吧問題搞的太復雜了。

J. 電子商務網站一般架構有哪些

大型電子商務網站架構,摘抄 7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?===客戶是自己公司,使用標准方法即可
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?===采購成熟的規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
==電子商務一般要使用MQ,推薦IBM MQ;使用MSMQ也可
第一點是資料庫要設計好,要達到什麼級別,你可能需要考慮哪些表需要拆分,哪些表的核心數據需要冗餘,如果是mysql,還要考慮其他的問題,比如存儲引擎。
新聞肯定是要生成純靜態頁,對資料庫壓力就小很多,不過靜態頁也有管理上的不方便,更新刪除添加都要對磁碟文件進行操作
做一個自定義緩存層,對緩存邏輯進行控制,可以採用第三方緩存模塊,如果使用.net來做,可以層層緩存,頁面緩存,數據緩存(memcache,不過在win下效率不高)
電子商務網站特點就是對事務的嚴格,需要資料庫設計的時候要求高性能,也需要合適的索引,支持高並發,經常對產品表用戶表等進行索引檢查,是否有很多索引掃描和表掃描(即使是局部的,也要將逗局部地控制到最小范圍)
mssql語句對不需要事務的查詢要附帶上with(nolock),以利於並發更新。
有些功能模塊不能按照想當然的方式開發,比如產品訪問次數,切不可將這些更新非常頻繁的欄位置於核心表內,明確的做法是將其剝離開來 還有就是切不可經常性將欄位設計成bool類型,這樣會給以後的擴展留出路,即使是男女這種欄位,也建議採用tiny類型
其他還有就是在產品設計的時候充分考慮seo,網站目錄結構清晰可讀,而不是帶著一串串的查詢參數。
對安全要有整體的把握,最好全都是用存儲過程,在項目上線前將資料庫存儲過程全部導出再查找貌似exec的語句,查找是否需要替換成sp_executesql。
另外,如果採用mssql,全文搜索直接用mssql fte就可以,速度和精確度都還是可以的,最重要的是維護和管理開發很簡單。
打折的處理可以按照電信的一次,二次批價功能,如果你做過電信方面的系統。
當然也可以設計得更簡單的一些。 靜態的頁面建議使用CDN加速,以解決網通和電信之間訪問速度的問題;
數據的緩存方面建議考慮用memcache,另外也可以分別在表現層和數據層利用.net中的現存緩存機製作業可;
簡單執行的sql可以不用存儲過程,存儲過程會佔用資料庫伺服器的處理時間,造成死鎖;
mvc建議還是做些CMS的項目上應用,電子商城不是很適合,個人觀點。url上可以做轉義,使url顯示更友好;
資料庫建議建立分布資料庫,這樣可以轉移查詢和大訪問量對資料庫帶來壓力;
圖片可以考慮單獨放在一台伺服器上;1.三層架構
2.使用手寫sql,手寫entity(生成也可),緩存反射綁定(不是緩存數據哦,緩存映射關系),要考慮網站的長期發展還是手寫吧 靈活 性能也好
3.沒有這種問題,商業驅動的,純購物就好了,千萬別搞什麼圈子,wiki
4.純.net的mvc不建議,webform不搞viewstate,不搞服務端控制項(除repeater)再加點mvc的思想已足夠用了
5.不需要緩存數據(除搜索產品部分),要考慮多台伺服器的程序快速部署,config文件會很多,config要序列化緩存
6.當然是先生成好了,參照jd吧,按業務每張圖片對應幾個不同大小的圖
7.據經驗,電子商務網站僅靠中英雙語來達到多語言是不靠譜的(文化 用戶習慣不是簡單的語言切換),如果想真正運營英語的就要重新開發一個版本
8.不搞模式
9.負載均衡(web,db)+ssb非同步處理數據
10.你是業務類型的日誌還是異常日誌? 前台訂單流程上異常日誌不需要了,找個工具錄個腳本不停的跑 保證隨時發現問題發郵件就可以了
11.找第三方搜索組件 類似endeca的
12.負載均衡挺簡單的,初期靠軟體就可以,一切圖片找第三方放cdn,前台網站用到ajax的地方很少,如果用的話jquery 1,一個電子商務網站用戶99.5%的行為時Find
2、對於商品檢索部分,能不用資料庫就不用資料庫(網上切詞等相關的開源平台很多)
3、分布式緩存(Memcached 、Volecity),個人測試volecity 3還是不錯的
4、系統設計時必須要考慮可運營。從這個角度去設計系統
5、對於電子商務網站改動很頻繁,必須考慮架構設計如何適應頻繁的版本更新
6、必須設計一個好的單點登錄系統。
7、建議能不用sqlserver就不用它。
8、對於大型電子商務網站來說,系統的I/O是起決定因素而不是CPU和內存。1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
項目劃分其實不重要,重要的的是你在寫代碼的時候是否能把代碼合理的分到對應的項目里。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
開發效率優先,訪問量大了以後,我相信是有錢投到硬體上的,在你程序寫的不是很爛的情況下,升級硬體遠比優化程序節省成本。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
那就做成自定義控制項啦。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
推薦使用使用webform的,前台使用mvc,對於前台來說使用mvc能更好的提升性能,更方便的更換頁面表現形式。後台界面相對穩定,用webform可以提高開發效率。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
初期建議用hashtable,因為簡單,將來升級到Memcached 。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成縮略圖的好處是節約性能。httpmodle相反,每次瀏覽圖片的時候都會生成新的圖片,伺服器壓力大,建議直接生成。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
多語言建議使用asp.net自帶的資源文件的方式實現,當前語言保存在cookie裡面。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
使用MQ隊列
10.日誌方面,log4net?
log4net只能記錄程序運行日誌,主要目的是用來調試程序的,系統業務操作日誌還你是得自己建一個表來保存。
11.電子商務的全文檢索,這也是個頭疼的問題
lucene,微軟索引服務,sqlserver全文檢索,方案很多的。
12.負載均衡方面,有什麼好的文章推薦碼?
可以看windows 2003 集群方面的文章 1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
目前我也是這樣分的,不過當數據表結構有修改時,會帶動其它層的聯級修改,非常不方便,所以開發之前最好將資料庫設計地完善一點。另外,當網站分成多個以後,其它項目生成的DLL文件要部署到每個網站的bin文件夾里,更新一次都要重新部署,這也是個挺煩人的事,當然可以將DLL部署到GAC里來解決這個問題,不過這樣的話本地調試起來就不太方便了,因為項目一有改動,就要將生成的DLL重新拷貝到GAC里才能看到效果。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
這個我也在考慮。目前我還沒有採用ORM框架,都是在DAL里直接訪問DB的。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
自定義控制項。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
正在學習這一塊。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
現在我用的比較多的是.net自帶的數據緩存。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成好,快一點。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
我沒涉及到這一塊,不過我覺得資源文件應該就是用來處理這個問題的。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
這些都放在邏輯層好了。
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
MSMQ
10.日誌方面,log4net?
目前我是自已寫代碼存在庫里的。
11.電子商務的全文檢索,這也是個頭疼的問題
用lucene.net分詞建索引,再直接從索引庫里搜索,又快又准。
12.負載均衡方面,有什麼好的文章推薦碼?
不清楚了。 這樣的設計要達到新蛋的效果肯定不可能的,新蛋少說幾百台伺服器,不同資料庫之間的發布訂閱鏈路都有幾千條。有復雜的緩存,負載均衡機制。新蛋所有的通訊都是基於WCF的。另外對於這么大型的網站來說,資料庫一刻都不停止,所以讀寫分離也很重要,因為你也不可能讓資料庫停下來進行備份。總歸要做到新蛋這樣的大型電子商務網站,靠你上面畫的這點好像遠遠不夠。
不過關於公共的header,footer,我不建議做成自定義控制項,這個維護起來不方便,稍有變動就要發布dll,麻煩的。
如果你的header和footer不是很大的話,建議採用js+css的方式。然後加上壓縮和cdn緩存,應該效率上能接受。