mysql MySQL儲存IP位址

2021-09-08 19:24:45 字數 690 閱讀 7650

首先就來闡明一下部分人得反問:為什麼要問ip得怎樣存,直接varchar型別不就得了嗎?

其實做任何程式設計都要在功能實現的基礎上最大限度的優化效能。而資料庫設計是程式設計中不可忽略的乙個重要部分,所以巧存ip位址可以一定程度獲得很大提公升。

在mysql中沒有直接提供ip型別字段,但如果有兩個函式可以把ip與最大長度為10位數字型別互轉,所以使用int型別儲存ip比varchar型別儲存ip位址效能要提公升很多,減少不少空間。因為varchar是可變長形,需要多餘的乙個位元組儲存長度。另外int型在邏輯運算上要比varchar速度快。

所以ip的表字段可以設定為int就好,如果ip獲取不到可以直接存0代表獲取不到ip的意思

整型欄位的比較比字串效率高很多,這也符合一項優化原則:字段型別定義使用最合適(最小),最簡單的資料型別。

inet_aton()演算法,其實借用了國際上對各國ip位址的區分中使用的ip number。

a.b.c.d 的ip number是:

a * 256的3次方 + b * 256的2次方 + c * 256的1次方 + d * 256的0次方。

MySQL MySQL儲存引擎

mysql可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱為儲存引擎。每一種儲存引擎使用不同的儲存機制 索引技巧 鎖定水平 最終提供廣泛而不同的功能。myisam innodb memory csvarchive 併發控制 當多個連線對記錄進行修改時保證資料的一致性和完整性。鎖共享鎖 讀鎖...

MySQL MySQL儲存引擎簡介

引入 在介紹完mysql的邏輯架構之後。我們發現mysql的一大亮點就是它的儲存引擎,我們可以根據我們開發中的實際要求去選用我們需要的儲存引擎進行對資料庫表的儲存操作。但是呢並不是所有的儲存引擎我們都會使用到,下面我們一起來看一下我們經常使用的倆個mysql儲存引擎innodb和myisam。儲存引...

mysql mysql中儲存過程的使用

需求 使用者根據自己的積分兌換商品 分析 整個過程設計2個步驟,1.插入使用者 商品兌換關係表中。2.扣除使用者積分。3.商品的數量要相應減少。涉及到多張表操作,肯定用儲存過程要好一些。使用者 商品 兌換關係 1.插入記錄 2.更改使用者積分 3.更改商品數量 問題是 當我使用者兌換多個商品時候,我...