mysql小技巧記錄

2022-03-13 07:09:19 字數 1255 閱讀 1131

1.在mysql場景中,每一行都是用分號(;)作為結束的。

2.在php場景中,最後的分號(;)可以省略掉。

如:

<?

$sql = "select * from tem";

?>

這是因為php也是以分號作為一行的結束的,額外的分號有時會讓php的語法分析器搞不明白,所以還是省略掉的好。

在這種情況下,雖然省略了分號,但是php在執行mysql命令時會自動的幫你加上的。

3.優先採用關聯陣列取出資料。關聯的效率高於索引的。

4.多表聯合查詢下,給表取用別名。如:

<?php

$sql = "select a.t1,b.t2 from table_a as a,table_b as b";

?>

5.用mysql_unbuffered_query()開發快速的指令碼

這個函式能用來替換mysql_query()函式,主要的區別就是mysql_unbuffered_query()執行完查詢後馬上返回,不需要等待或者對資料庫加鎖。

但是返回的行數不能用mysql_num_rows()函式來檢查,因為輸出的結果集大小未知。

6.not null和空記錄

如果使用者在沒有填任何東西的情況下按了submit按鈕,會怎樣呢?如果你確實需要乙個值,那麼可以用客戶端指令碼或者伺服器端指令碼來進行資料驗證。

但是,在資料庫中卻是允許一些欄位被空出來什麼也不填。對此類紀錄,mysql將要為之執行一些事情:插入值null,即預設的操作。

如果你在字段定義中為之宣告了not null(在建立或者修改這個欄位的時候),mysql將把這個欄位空出來什麼東西也不填。

對於乙個enum列舉型別的字段,如果你為之宣告了not null,mysql將把列舉集的第乙個值插入到字段中。

也就是說,mysql把列舉集的第乙個值作為這個列舉型別的預設值。

乙個值為null的紀錄和乙個空紀錄是有一些區別的。%萬用字元可以匹配空紀錄,但是卻不能匹配null紀錄。

在某些時候,這種區別會造成一些意想不 到的後果。就我的經驗而言,任何欄位都應該宣告為not null。

這樣許多的select查詢語句就能夠正常運轉了。注意在搜尋null時,必須用「is」關鍵字,而like是不會正常工作的。

在最後要提到的 是,如果你在加入或者修改乙個新的字段之前,資料庫中已經有了一些記錄了,

這時新加入的字段在原來的紀錄中的值,可能是null,也可能為空。這也算是 mysql的乙個bug吧,所以在這種情況下,使用select查詢要特別的小心。

TextView小技巧記錄下

忘了是看誰的部落格 大致寫法都差不多 spannablestring string new spannablestring item.getcontent verticalimagespan imagespan new verticalimagespan mcontext,r.drawable.ic...

mysql優化小技巧

對mysql優化時乙個綜合性的技術,主要包括 a 表的設計合理化 符合3nf b 新增適當索引 index 四種 普通索引 主鍵索引 唯一索引unique 全文索引 c 分表技術 水平分割 垂直分割 d 讀寫 寫 update delete add 分離 e 儲存過程 模組化程式設計,可以提高速度 ...

Mysql優化小技巧

思夢php 2019 02 09 07 01 00 資料量和要求 優化技巧 先把每一條心得記錄在這裡,後面會進行實驗對其一一驗證。查詢資料總條數時,使用max id 而不是count 進行總量計數。當然,前提是id是從1開始自增長,並且沒有行被刪除過。對於常用的查詢字段建立索引。索引的速度優勢顯而易...