MySQL 普通註冊插入優化。

2023-01-20 17:21:23 字數 1547 閱讀 3534

普通做法是:

使用者通過手機號註冊。預設是根據這個手機號去使用者表裡查詢,看有沒有這個手機號,有那麼就提示已註冊。否則就執行註冊插入資料庫操作。這裡其實正常註冊流程是兩次資料庫操作的(查詢,插入);

優化做法:

手機號設定為唯一索引。直接執行插入操作。這裡利用了mysql的報錯機制;如果插入的手機號 跟資料庫裡的有重複,那麼呼叫mysql方法mysql_errno() 可以看到是是1062;1062 代表插入的手機號資料庫裡已經存在。插入失敗。這樣就可以知道。資料庫裡是否已經有這個使用者了。只操作了一次插入操作;

附 mysql_errno部分常用 錯誤**解釋

1005: 建立表失敗

1006: 建立資料庫失敗

1007: 資料庫已存在,建立資料庫失敗

1008: 資料庫不存在,刪除資料庫失敗

1009: 不能刪除資料庫檔案導致刪除資料庫失敗

1010: 不能刪除資料目錄導致刪除資料庫失敗

1011: 刪除資料庫檔案失敗

1012: 不能讀取系統表中的記錄

1016: 無法開啟檔案

1020:記錄已被其他使用者修改

1021:硬碟剩餘空間不足,**大硬碟可用空間

1022:關鍵字重複,更改記錄失敗

1023:關閉時發生錯誤

1024:讀檔案錯誤

1025:更改名字時發生錯誤

1026:寫檔案錯誤

1032:記錄不存在

1036:資料表是隻讀的,不能對它進行修改

1037:系統記憶體不足,請重啟資料庫或重啟伺服器

1038:用於排序的記憶體不足,請增大排序緩衝區

1040:已到達資料庫的最大連線數,**大資料庫可用連線數

1041:系統記憶體不足

1042:無效的主機名

1043:無效連線

1044:當前使用者沒有訪問資料庫的許可權

1045:不能連線資料庫,使用者名稱或密碼錯誤

1040: 最大連線數

1048:欄位不能為空

1049:資料庫不存在

1050:資料表已存在

1051:資料表不存在

1054:欄位不存在

1065:無效的sql語句,sql語句為空

1081:不能建立socket連線

1114:資料表已滿,不能容納任何記錄

1116:開啟的資料表太多

1129:資料庫出現異常,請重啟資料庫

1130:連線資料庫失敗,沒有連線資料庫的許可權

1133:資料庫使用者不存在

1141:當前使用者無權訪問資料庫

1142:當前使用者無權訪問資料表

1143:當前使用者無權訪問資料表中的欄位

1146:資料表不存在

1147:未定義使用者對資料表的訪問許可權

1149:sql語句語法錯誤

1158:網路錯誤,出現讀錯誤,請檢查網路連線狀況

1159:網路錯誤,讀超時,請檢查網路連線狀況

1160:網路錯誤,出現寫錯誤,請檢查網路連線狀況

1161:網路錯誤,寫超時,請檢查網路連線狀況

1062:欄位值重複,入庫失敗

mysql插入優化

1.一條sql語句插入多條資料。insert into table field1,field2,values value1,value2,value1,value2,2.在事務中進行插入處理。start transaction insert into table field1,field2,valu...

Vue如何優化元件註冊

一勞永逸的元件註冊 場景還原 import basebutton from basebutton import baseicon from baseicon import baseinput from baseinput export default 我們寫了一堆基礎ui元件,然後每次我們需要使用這...

MySQL批量插入優化

前面介紹了mysql批量插入可以通過儲存過程的方式來實現,這裡介紹批量插入100w記錄,並做一個優化。建表語句 create table.sql drop table if exists xx user create table xx user id int primary key auto inc...