在多使用者、高併發的網際網路應用場景中,mysql資料庫表的主鍵(pk)怎麼設計更合理呢?可能的選擇:
uuid的生成和使用,請參閱:
優點:
好生成,容易保證唯一性(尤其全庫唯一性的應用場景)
有利於多使用者、高併發的寫操作效能提公升
父子表事務insert資料時,子表容易得到parent_id,不需要額外的查詢等獲取方式,甚至該操作可以放到事務外部
缺點:
不利於閱讀和記憶
比int佔更多的空間,包括資料儲存空間、索引空間
沒有大小比較、順序的實際意義,innodb儲存中,頁中資料為隨機儲存,讀取也為隨機讀,較少能順序讀,對讀取效能有影響(隨機讀;拿一批資料時,可能需要讀取更多的頁資料)
優點:
好閱讀、好記憶
占用空間少
innerdb儲存引擎中,該錶資料會按照自增id大小順序,依次儲存,有利於讀操作的效能提公升(更多的順序讀,裝載更少的頁)
缺點:
父子表事務insert資料時,子表得到父表的parent_id,麻煩一些,有些語言和框架可能還需要額外進行查詢,甚至有併發髒資料風險
網際網路產品
我今天用文字,是為了讓大家能夠清晰的看到乾貨內容,所以我選擇了文字。3 搞成交 有了前面兩步,賺錢就很容易了,你只需要把你的產品進行價值包裝,就可以輕鬆賣出去。如何進行價值包裝呢?我有一本 價值包裝秘笈 可以送給大家。大家如何獲取這本秘笈呢?非常簡單,本文到你的朋友圈,然後私聊找我要,我會免費送你電...
網際網路產品秘籍
很多人都在講 以使用者和市場為中心 但實際上還是 以公司為中心 不能為使用者創造價值。在網際網路領域創業的人越來越多,但究竟怎樣才能打造出一種成功的網際網路產品,一直存在著理解的誤區,也困擾著很多創業者。從我個人多年的實踐中,我認為網際網路產品有幾個容易被忽視的特點 第一,網際網路產品要有乙個靈魂,...
what網際網路產品
一 直想給產品運營下個系統的定義,或者總結乙個方 如何做好產品運營,產品運營需要包含的素質等。聽過很多課,搜尋過相關的資訊,但一般都是針對具體產品 講某個片段成就。或者有大佬說,好產品是運營出來的。但實際產品運營在各個公司具體定義是不一致的,甚至有的只是打打雜,很不待見。而我個人也一直覺得 運營即效...