<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      我用AI開發數據庫,沒想到被狠狠地教育了......

      0
      分享至

      我在之前的文章中介紹過SQLite,這是個嵌入式數據庫,也是世界上最流行的數據庫。


      (詳情參見這篇文章:)

      有一天我突發奇想:既然是嵌入式數據庫,那應該不復雜,能不能用AI寫一個?

      說干就干,我把SQLite的架構文檔發給了AI,讓它根據現有架構來實現。

      你別說,AI實現得相當不錯,把Tokenizer,Parser,Code Generator,Bytecode Engine這些核心的概念都考慮到了,代碼寫得也不錯,著實是讓我吃驚。


      但是,當我看到SQLite的測試的時候,我就知道,現在的AI,想寫出SQLite級別的代碼,恐怕是做夢。

      因為SQLite簡直不是一個軟件,而是個怪物

      截至 3.42.0 版本(2023-05-16),SQLite 庫本身大約包含15.58萬行C代碼。

      而測試代碼和測試腳本腳本加起來一共有9205萬行,是核心代碼的 590 倍!

      不是5倍,50倍,而是590倍 !

      測試的目標不但要覆蓋“功能”,還要覆蓋分支,覆蓋異常,覆蓋現實世界的災難。

      SQLite設立了4套“互不信任”的測試體系,避免同一思路的盲區。

      0 1

      “保命”測試

      首先,它用TCL寫了一套“日常保命測試”,測試腳本有1390個文件,一共23.2M,包含了51,445 個不同的測試用例,參數化執行,會跑出數百萬測試。

      開發者日常主要依賴一個非常快的、幾分鐘就能跑完的子集,用于每次提交前自己檢查。

      0 2

      “徹底”測試

      SQLite有一套私有的C語言測試系統(名稱為TH3),為 SQLite 核心庫提供 100% 分支覆蓋率。

      這個數字是非??植赖模蠹叶贾栏采w所有分支很麻煩,例如這行代碼:

      }

      想要達到100%分支覆蓋,至少需要3個測試用例:

      (1) a<=b

      (2) a>b 且 c==25

      (3) a>b 且 c!=25

      除了分支覆蓋,SQLite還是是實現了100% MC/DC 覆蓋率。

      MC/DC(Modified Condition/Decision Coverage)是航空、核工業級別的測試標準。也就是說SQLite 把一個嵌入式數據庫,按飛控軟件的標準來測。

      TH3有個非常重要的特點,就是不靠“后門”,只是用SQLite公開的API接口,完全模擬用戶的行為。

      TH3 包含大約 76.9MB、100萬行C 代碼,實現了 50,362 個不同測試用例。

      在發布之前的一個長時間壓力測試中,會執行2.485億次測試。

      0 3

      對標測試

      這是一個裁判性測試,它將大量 SQL 語句同時運行在 SQLite 和其他4個數據庫引擎(PostgreSQL、MySQL、SQL Server、Oracle 10g )上,并比較結果是否一致。


      換句話說,SQLite 不只要自洽,還要和“行業共識”對齊。

      這個測試共運行 720 萬條查詢,測試數據總量 1.12GB。

      0 4

      模糊測試

      模糊測試通過向SQLite提供無效、意外或者隨機數據來測試它的健壯性。

      例如這樣的SQL語言:

        CAST('999999999999999999999999' AS INTEGER) < 0;

      它完全符合SQL語法,但是幾乎不可能是人寫的,因為它精準命中了“超大內存申請”,“整數溢出”,“負索引”等極端情況。

      更殘酷的是,模糊測試還會破壞數據庫文件(.db),對它做隨機位翻轉、截斷、重復、拼接。

      例如,這是原始的數據文件(簡化):

      [Header][Page1][Page2][Page3]

      模糊測試工具把它改成:

      [Header][Page1][Page1][亂碼][Page3][Page3]

      然后嘗試去打開它:

      sqlite3_open("mutated.db", &db);

      SQLite要做到不崩潰,不越界,不死循環,要么報錯,要么優雅失敗。

      最后,模糊測試還會開關所有的宏定義,對不同的編譯器設置不同的編譯優化級別,讓同一條SQL在不同的情況下瘋狂運行,瘋狂地鞭打SQLite,折磨SQLite,直到它漏出所有的破綻。

      由于SQLite在嵌入式領域非常流行,手機、路由器、車載、工業設備等在大量使用它,所以它特別注重對異常情況的處理。

      內存不足測試

      在服務器和工作站上,內存分配malloc()幾乎不會失敗,在嵌入式設備上,OOM就太常見了,SQLite必須得能優雅的處理OOM錯誤。

      SQLite的測試框架(自己寫的)可以插入自定義的可控的malloc函數,設置成在調用一定次數后內存分配失敗,這樣就可以在循環中執行SQLite操作,確保能處理OOM錯誤。

      I/O錯誤測試

      磁盤空間不足、磁盤硬件故障、網絡中斷、SQL操作過程中發生的系統配置或權限更改,或其他硬件或操作系統故障......無論原因如何,SQLite 必須能夠正確響應這些錯誤。

      測試的方法和OOM測試類似,都是模擬I/O錯誤,然后檢查SQLite能否正確響應

      崩潰測試

      應用系統崩潰,操作系統崩潰,數據庫更新過程中斷電,SQLite都不能發生故障。

      這也是SQLite“原子提交”能被信任的原因。

      復合失效測試

      先發生I/O錯誤,然后出現OOM,再搞一個崩潰..... 保證程序還能正常運行。

      SQLite的這些測試,它的數量、完善程度和復雜程度,看起來真是讓人脊背發涼。

      這得付出多年的努力,經歷多少事故才能寫出來?。?/p>

      被這樣測試保護的軟件,代碼質量可以說是固若金湯了。

      AI能寫出這樣高質量的SQLite嗎?

      寫個玩具版是可以的,但是想要復刻是萬萬不行的。

      SQLite這種“高質量”不是體現在代碼本身,而是體現在幾十年積累的測試體系、失敗經驗和工程紀律上。

      AI 可以幫助我們寫實現、補測試、找 bug,但無法憑空生成那些來自真實事故、長期演化出來的異常場景和驗證策略。

      換句話說,AI 能參與寫 SQLite,但還不能“獨立孕育”一個 SQLite。

      SQLite只是一個嵌入式數據庫,就已經恐怖如斯了,那些更加復雜的數據庫會怎么樣呢?

      歡迎了解詳情的朋友在評論區留言!

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      中央軍委全力反腐敗,說明中國人民解放軍將要擔大任,干大事!

      中央軍委全力反腐敗,說明中國人民解放軍將要擔大任,干大事!

      安安說
      2026-01-29 09:33:17
      干飯人的“天”真的塌了,顧客吃牛蛙天花板掉出一條人腿,店家:樓上裝修導致,掉下來的員工沒事

      干飯人的“天”真的塌了,顧客吃牛蛙天花板掉出一條人腿,店家:樓上裝修導致,掉下來的員工沒事

      環球網資訊
      2026-03-22 14:10:21
      一克就有五億霉菌,喝普洱就是在喝臟水?普洱茶真的細菌爆表嗎?

      一克就有五億霉菌,喝普洱就是在喝臟水?普洱茶真的細菌爆表嗎?

      醫學科普匯
      2026-03-21 16:56:45
      5連勝奪冠!中國女網24歲1米82王牌復活:教練曾奪青少年世界第1

      5連勝奪冠!中國女網24歲1米82王牌復活:教練曾奪青少年世界第1

      李喜林籃球絕殺
      2026-03-23 14:08:39
      超136萬手封單,半導體龍頭“一字”跌停!腦機接口加快走入現實,多只概念股已砸出“深坑”

      超136萬手封單,半導體龍頭“一字”跌停!腦機接口加快走入現實,多只概念股已砸出“深坑”

      數據寶
      2026-03-23 11:55:15
      更新:伊朗導彈命中核工業城防空洞,傷亡萬人?

      更新:伊朗導彈命中核工業城防空洞,傷亡萬人?

      勝研集
      2026-03-22 12:59:44
      1991年蘇聯解體,叛逃少將馬爾果夫申請回國,我國做出了什么決定

      1991年蘇聯解體,叛逃少將馬爾果夫申請回國,我國做出了什么決定

      嘮叨說歷史
      2026-03-18 15:22:11
      12GB!蘋果新機曝光:9月正式發布

      12GB!蘋果新機曝光:9月正式發布

      高科技愛好者
      2026-03-22 23:05:20
      毛新宇少將擔任副部長!妻子劉濱擔任扇子協會會長

      毛新宇少將擔任副部長!妻子劉濱擔任扇子協會會長

      李昕言溫度空間
      2025-11-09 14:50:17
      中東局勢最新動態:3月23日下午重要消息

      中東局勢最新動態:3月23日下午重要消息

      第一校尉
      2026-03-23 16:13:47
      二野選兵團司令,劉伯承掰著手指頭數了三人,卻唯獨落下一員猛將

      二野選兵團司令,劉伯承掰著手指頭數了三人,卻唯獨落下一員猛將

      海佑講史
      2026-03-23 16:05:06
      5分鐘開通國家免費電視!不用機頂盒、不連網,永久免費

      5分鐘開通國家免費電視!不用機頂盒、不連網,永久免費

      叮當當科技
      2026-03-20 03:29:51
      中國石化:2025年營收2.78萬億同比下降9.5%

      中國石化:2025年營收2.78萬億同比下降9.5%

      IT之家
      2026-03-22 17:09:07
      大門緊閉!中國拒絕邀請日本出席高層會議,日本企業慌了!

      大門緊閉!中國拒絕邀請日本出席高層會議,日本企業慌了!

      阿龍聊軍事
      2026-03-23 14:56:49
      凈利潤暴跌90%!理想的銷量神話破滅

      凈利潤暴跌90%!理想的銷量神話破滅

      大佬灼見
      2026-03-13 12:23:26
      張靚穎自曝醫美失敗臉僵笑不出來,網友:娛樂圈最高級的公關

      張靚穎自曝醫美失敗臉僵笑不出來,網友:娛樂圈最高級的公關

      師維
      2026-03-22 23:02:13
      特朗普:臺灣屬于中國,中方武統是自由,但一動手美國會不高興

      特朗普:臺灣屬于中國,中方武統是自由,但一動手美國會不高興

      紀中百大事
      2026-03-23 09:57:51
      《逐玉》捧紅一位外國演員,長得帥、中文好,隊友都不知他是老外

      《逐玉》捧紅一位外國演員,長得帥、中文好,隊友都不知他是老外

      觀察鑒娛
      2026-03-23 09:20:36
      中國重型旅轉型全域旅,原有裝備不能全部淘汰

      中國重型旅轉型全域旅,原有裝備不能全部淘汰

      全球直擊
      2026-03-23 09:53:54
      66歲中將被除名:任核試驗基地司令,最后露面照曝出詳細過程披露

      66歲中將被除名:任核試驗基地司令,最后露面照曝出詳細過程披露

      博士觀察
      2026-03-21 14:05:14
      2026-03-23 17:03:00
      碼農翻身 incentive-icons
      碼農翻身
      有趣且硬核的技術文章
      239文章數 635關注度
      往期回顧 全部

      科技要聞

      裁掉2萬多名員工后,扎克伯格對自己下手了

      頭條要聞

      特朗普向伊朗發出48小時"最后通牒" 中方表態

      頭條要聞

      特朗普向伊朗發出48小時"最后通牒" 中方表態

      體育要聞

      不敢放手一搏,你拿什么去爭冠?

      娛樂要聞

      劉燁47歲生日,安娜曬全家福為其慶生

      財經要聞

      滬指險守3800點 全市場超百股跌停

      汽車要聞

      "拒絕"豪車稅 新款Panamera盡享版99.8萬元起精準入局

      態度原創

      家居
      本地
      親子
      手機
      公開課

      家居要聞

      智慧生活 奢享家居

      本地新聞

      這里是寶雞 嫽滴很!

      親子要聞

      有娃之后才開竅,分享一波寶媽的“生活智慧”,省時又省力

      手機要聞

      華為暢享90系列發布:全系搭載自研麒麟芯片,售價1299元起

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版