久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

Go rqlite作者告訴你:開發數據庫軟件,算法多重要!

本文由golang教程欄目給大家介紹關于《Go rqlite作者告訴你:開發數據庫軟件,算法多重要!》,希望對需要的朋友有所幫助!

編寫數據庫程序是一項迷人的工作。在過去的兩年里,我一直深度參與開源數據庫的開發,而數據庫編程可能是作為一個軟件開發者所能完成的最有啟發性的項目了。

然而,真正令人震驚的是, 在過去的 6 年里,我對數據庫的態度發生了很大的變化。 從一開始不感興趣的狀態,到現在我開始認為數據庫系統是軟件工程的一個巔峰。

不知道什么是更好的

在我的職業生涯的大部分時間里, 我對數據庫的唯一經驗就是閱讀有關它們的資料。 通常是在想當枯燥的背景下 — 打開任何一本有關數據庫的本科教科書,就能明白我的意思。 通常你會看到如下表格,作為關系型數據庫的典型用例:

ID FIRST LAST TITLE DEPARTMENT
1 Robert Kelly Director Marketing
2 Tom Burke Representative Sales
3 John Smith Vice President Sales

你能再多讀些無聊的東西嗎?如果這些都是關于數據庫的,我不想和它們有任何關系。重點是什么?軟件比這酷多了,對吧?所以我在很長一段時間里完全避免了與數據庫有關的任何事情

您永遠不會忘記您的第一次CRUD應用

2009年,經過多年的寫作 嵌入式軟件, Linux 設備驅動程序, 和 網絡軟件, 我發現自己領導的團隊需要構建一個基于web的系統。你看,這個 AWS 云計算已經到來,基于云計算的許可技術 MAC 地址 不再有效。我的團隊必須建立一個 許可門戶 用于我們新的基于EC2的軟件設備。因為我們在這方面有很多經驗 Python, 我們選擇了 Django, 運行在 MySQL. 發生了一些新的事情。實際上,我是從數據庫開始工作的。

隨著我國平原地區的發展CRUD應用程序繼續運行,我開始意識到數據庫是多么重要——它對我們的系統是多么重要。如果我們丟失了數據庫,我們的軟件開發就白費了。如果數據庫損壞了數據,我們客戶的設備可能會未經許可,他們的網絡將停止運行。如果數據庫不能正常運行,成千上萬的人將同時受到影響。但這些事情都沒有發生過。數據庫始終工作。它從不讓我們失望。我印象深刻。
后來我發現了外鍵約束,唯一約束,引用完整性,索引,(記住,在這個時候我什么都不知道關于這些事情)-數據庫可以通過各種方式幫助我構建一個更健壯的系統。我終于意識到現代數據庫是驚人的-數據庫是世界上最無聊的東西直到你真的必須用它們來構建一個系統

你也永遠不會忘記你的第一個搜索系統

到2012年,我領導了一個團隊,建立了一個大型索引和搜索系統基礎上的大型鍵值數據庫,帶有彈性搜索在其核心。看看elasticsearch這樣的系統能做什么 —— 一個建立在世界級索引這項技術——即使其下有TB級的日志數據,也讓人大開眼界。
到現在為止,我甚至看到數據庫和搜索系統也失敗了,但我被數據庫技術迷住了。到2014年,我加入了一個小型專門團隊,開發[開源時間序列數據庫]的核心(github.com/influxdata/influxdb).

我學到的

算法真的很重要

只有在數據庫開發中才有大O分析真的活過來了。數據庫是程序員仍然需要循環、排序和過濾數百萬對象的少數應用程序之一。這是少數幾個在CS課上學到的很多枯燥材料都很重要的地方之一。

其他許多軟件開發都不是這樣。寫入啟動ROM固件?不,算法對我來說從來都不重要。調諧器設備驅動程序? 不,沒關系。網絡設備管理軟件? CRUD應用程序?幾乎不所有這些學科都需要不同的技能和知識。大多數時候,我只是在面試中討論了運行時的復雜性。
但隨著數據庫的發展,這一切都發生了變化。實際上看到一個系統返回正確的結果,但是由于算法的改變,只在以前的一小部分時間內,看到它發生在您的代碼中,在您構建的系統中,這是一件美妙的事情。

表現也很重要

軟件中有一個老故事是這樣的:程序員編寫的一些代碼的運行速度比以前的版本快十倍。他展示了它,但有人指出,它產生的數據與正確的數據略有不同。“但是速度快了十倍。”程序員指出。“好吧,如果它不需要是正確的,我可以制作一個完全不占用空間、運行速度無限快的版本”,另一個回答說。
這個道德故事一直對我影響很大。正確總是比什么都重要。這是真的。但這也讓我相信,項目之所以有價值,僅僅是因為它們產生了正確的結果。

對于數據庫,情況并非如此。
性能不僅僅是一項功能。這是一個要求。那些愿意為數據庫掏錢的人經常這樣做,因為他們擁有大量的數據。如果數據庫在這種情況下不能很好地執行—如果它不能快速有效地返回結果—那么它可能根本不工作。

你認為寫系統很復雜嗎?

我認為開發數據庫最讓我震驚的是查詢引擎變得如此復雜。我有很多構建系統的經驗,可以將數據寫入并存儲到磁盤。使這些系統運行良好可能是一項重大挑戰。
但這種復雜性通常比查詢引擎的復雜性要小得多。一個靈活的查詢系統——有效地構建一個系統來回答問題,當你不知道問題會是什么的時候——需要認真的設計思想。查詢計劃器必須有效。查詢系統必須支持許多正交需求——按某些維度過濾,按其他維度分組,連接來自不同表的數據——有時還支持來自外部源的數據。最后,查詢系統必須高效且性能良好。這導致了設計和實現中抽象和優化之間的緊張關系,這需要真正的技巧才能很好地管理。

在現實世界中,它必須被操作

任何重要的數據庫都必須支持備份、恢復、碎片管理和監視等基本操作。
如果我,作為一個嚴肅的操作員,不能備份你的數據庫,我不能使用它,就這么簡單。數據庫接受寫操作的速度有多快并不重要。在查詢過程中,它的內存占用有多小并不重要。如果我不能保護數據庫中的數據不受數據庫創建者您無法控制的故障的影響,我將永遠無法舒適地運行它。
當然,有很多方法可以備份數據庫,而不需要數據庫的合作。但內置方法通常是最好的。這也是我向 rqlite v2.0.如果我想讓任何人認真地使用rqlite,我必須解決現實世界中的問題,即系統可能完全失敗,并將數據拖得很長時間。

因此,在設計和實現數據庫時,從一開始就要構建操作支持。將其作為設計的基本部分。您的用戶將為此感謝您。

答案通常是“視情況而定”

當您第一次開始使用數據庫時,尤其是作為一名操作員,您經常會問這樣的問題:系統可以以什么速率索引?它對查詢的響應速度有多快?我需要多少磁盤空間?一塊碎片能有多大,而且還能正常工作?我怎樣才能加快速度?所有人都毫無保留地問。我過去常常自己做。
也許你可以和數據庫程序員談談,問他們這些問題。而你經常——也許永遠——得到的回答是:這取決于你。你必須基準,你必須衡量。聽到這個消息可能會很惱火,而且可能看起來像是在逃避責任。

但事實并非如此。
現在,當我聽到這樣的問題時,我會微笑。太天真了。
索引率可能取決于數據的大小,而不僅僅是文檔或數據點的數量。這可能取決于批處理、數據的基數、數據庫是否群集、數據中的哪些列和字段被索引、是新數據還是對現有數據的更新、運行數據庫的機器、RAM、IO性能以及使用的復制。
控制性能的變量永遠不會結束。
對于查詢,可能取決于時間序列數據的時間范圍。它取決于命中的記錄數、查詢的字段數、是否涉及范圍掃描、數據是否索引、使用的索引類型、可能訪問的碎片數、數據是否為本地數據。以及機器的特點。它有貨嗎?它正在進行維護嗎?網絡忙嗎?

所以答案總是, 視情況而定。 數據庫設計者是誠實的。 他們可以知道他們建立的系統的一切, 但仍然不知道您的問題的答案。

編程遺愿清單

如果給那些希望提高編程能力的開發人員一條建議的話,那就是加入數據庫開發團隊。因為數據庫開發,我的編程技能大大提高了——這是一次美妙的編碼體驗。

原文地址:https://www.philipotoole.com/what-i-learned-from-programming-a-database/

譯文地址:https://learnku.com/go/t/64605

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产精品亚洲综合久久| 黄色日韩精品| 激情91久久| 蜜臀久久精品| 欧美gv在线| 欧美日韩水蜜桃| 成人欧美一区二区三区的电影| 牛牛精品成人免费视频| 国产私拍福利精品视频二区| 日韩高清在线观看一区二区| 奇米狠狠一区二区三区| 国产精品xxx在线观看| 国产精选一区| 中文字幕在线高清| 亚洲欧美一区在线| 香蕉久久国产| 国产亚洲电影| 成人片免费看| 美女国产一区| 国产精品一区二区三区美女 | 成人精品中文字幕| 日韩午夜在线| 国产精品久久久久久av公交车| 精品视频99| 日韩网站在线| 麻豆中文一区二区| 久久性天堂网| 国产成人黄色| 视频一区二区中文字幕| 日本欧美久久久久免费播放网| 国产精品chinese| 99热精品在线| 青草av.久久免费一区| 成人羞羞视频在线看网址| 热久久国产精品| 精品久久久久中文字幕小说| 精品1区2区3区4区| 日本精品黄色| 久久激五月天综合精品| 亚洲电影在线一区二区三区| 日日夜夜免费精品视频| 亚洲天堂av影院| 国产精品调教| 在线一区二区三区视频| 久久夜夜操妹子| 免费视频一区二区三区在线观看| 欧美精品一线| 国产伦理一区| 日韩精品午夜视频| 日本 国产 欧美色综合| 99国产成+人+综合+亚洲欧美| 六月婷婷综合| 色爱综合网欧美| 久久伊人国产| 美女国产一区二区三区| 人人爱人人干婷婷丁香亚洲| 在线观看一区| 亚洲深夜福利在线观看| 99国产精品久久久久久久| 亚洲综合欧美| 免费人成黄页网站在线一区二区| 亚洲欧美伊人| 日韩av在线中文字幕| 高清日韩中文字幕| 亚洲最新无码中文字幕久久| 成人国产精品一区二区免费麻豆| 久久影院一区二区三区| 精品资源在线| 91一区二区| 久久精品国内一区二区三区水蜜桃| 国产精品精品| 欧洲激情综合| 一区二区精品| 国产精品一区二区99| 牛牛精品成人免费视频| 另类综合日韩欧美亚洲| 精品女同一区二区三区在线观看| 欧美日一区二区三区在线观看国产免 | 欧美日韩视频免费观看| 天堂日韩电影| 亚洲综合不卡| 国产欧美日韩亚洲一区二区三区| 国产一区二区三区日韩精品| 久久亚洲在线| 日本在线不卡视频| 精品日韩一区| 久久香蕉精品| 美女国产精品久久久| 久久精品亚洲人成影院| 在线视频亚洲| 国产日产精品一区二区三区四区的观看方式| 国产精品麻豆成人av电影艾秋| 国产精品入口久久| 欧美日韩国产探花| 国产精品igao视频网网址不卡日韩| 久久精品中文| 国产经典一区| 美女精品在线观看| 给我免费播放日韩视频| 亚洲一区二区小说| 日韩精品一区二区三区免费观影 | 婷婷综合电影| 欧美搞黄网站| 久久男人天堂| 欧美交a欧美精品喷水| 视频一区视频二区中文字幕| 久久精品伊人| 欧美一区成人| 99国产精品视频免费观看一公开 | 国产+成+人+亚洲欧洲在线| 久久国产精品99国产| 久久国产日韩| av免费不卡国产观看| 国产精品一国产精品k频道56| 日韩一级网站| 色婷婷久久久| 久久一区视频| 国产精品三级| 日韩va亚洲va欧美va久久| 国产一区导航| 国产精品丝袜xxxxxxx| 欧美男人天堂| 精品国产午夜肉伦伦影院 | 精品一二三区| 欧美精品99| 国产激情一区| 麻豆精品视频在线观看免费| 国产日韩亚洲欧美精品| 日本一区二区三区视频在线看| 夜夜嗨一区二区三区| 亚洲免费一区二区| 香蕉久久久久久久av网站| 久久福利精品| 亚洲不卡视频| 欧美一区影院| 久久精品伊人| 成人欧美一区二区三区的电影| 国产一区二区三区久久| 日本一二区不卡| 秋霞国产精品| 亚洲一区国产一区| 欧美亚洲综合视频| 欧美成人aaa| 国产麻豆久久| 亚洲影院天堂中文av色| 欧美视频久久| 国产不卡精品| 亚洲一区中文| 久久激情av| 免费观看亚洲| 国产精品97| 欧美午夜精彩| 日本少妇精品亚洲第一区| 久久亚洲精品中文字幕蜜潮电影| 日韩欧美在线精品| 日韩一区电影| 欧美激情福利| 亚洲日本国产| 日韩毛片视频| 国产日韩欧美一区二区三区 | 精品国产18久久久久久二百| 久久精品99国产精品日本| 视频一区二区三区入口| 中文一区一区三区高中清不卡免费| 国产一级久久| 成人精品亚洲| 久久久久久婷| 新版的欧美在线视频| 91欧美在线| 久久av导航| 亚洲三级精品| 在线午夜精品| 中文字幕av一区二区三区四区| 红桃视频国产一区| 亚洲精品中文字幕乱码| 国产精品xxxav免费视频| 日韩激情av在线| 亚洲精品大全| 欧美日韩国产精品一区二区亚洲| 精品视频久久| 久久超级碰碰| 国产欧美一区二区精品久久久| 亚洲精品综合| 亚洲一区二区小说| 日本成人在线一区| 欧美日韩黄网站| 欧美精品中文| 美腿丝袜在线亚洲一区| 国产精品久久久一区二区| 国产精品色婷婷在线观看| 国产精品九九| 成人三级高清视频在线看| 日韩高清欧美| 亚洲成av人片一区二区密柚| 精品国产免费人成网站| 免费在线小视频| 午夜日韩av| 国产欧美午夜| 91青青国产在线观看精品| 久久人人精品|