所有字段建議設定為非null,從效率和索引上來說,null佔空間並且不走索引,所以請將所有字段設定為非null
有些欄位在程式中設定當值為某個具體數的時候表示為空,但這個數字在程式中又是根據不定值得來的,有可能真正有意義的數字是這個為空的數字,建議將為空的表示做成不在程式範圍的數字
有些表有建立時間或者更新時間,建議使用timestamp型別,自動更新,要求mysql5.5以上
建議所有時間字段,用整型儲存unix時間戳,即int(10) unsigned not null default '0',這樣可以避免不同機器時區的問題,並且效率更高
建議所有的表都擁有自增主鍵(如果可以,所有主鍵最好以id命名。)
建議除主鍵外,所有字段設定預設值,不能明確知道預設值的,字元型別設定為『』,數字型別設定為0
如果保證了所有表都有主鍵後,下一步在程式中,不管什麼條件得到列表,建議只取id,再根據id取內容,或者使用join
select id from table where 條件 limit 條數頁碼
select * from table where id>(select id from table where 條件 limit 條數頁碼) and 條件 limit 條數
select * from table as a join (select id from table where 條件 limit 條數頁碼) as b on a.id=b.id
關於float型別,由於float是單精度型別,進行計算時採用的是浮點計算,即位數不足補位運算時會產生誤差,如果有float型別的,並且要在程式中進行計算的,建議修改為decimal型別,decimal是雙精度型別,計算時採用定點計算,精度較高
關於座標,根據谷歌的建議是使用 float( 10, 6 ) not null
===================================資料庫查詢語句
select
ordinal_position as "序號",
column_name as "字段",
column_type as "型別",
column_key as "鍵",
is_nullable as "允許為空",
if(isnull(column_default),
"null",column_default) as "預設值",
if(extra!="",concat_ws(",",extra,column_comment),column_comment) as "注釋"
from information_schema.`columns`
where table_schema="庫名" and table_name="表名";
Mysql相關知識點
1 對於mysql表中有乙個時間字段,要根據時間字段計算,在某一時間段中,該表中的所有記錄。例子如下 在t druid info表中,ctime是時間字段,查詢t druid info表中,七月份接入的,並且執行著的任務總數,sql語句如下 select count from t druid inf...
mysql索引優化知識點
想要了解索引的優化方式,必須要對索引的底層原理有所了解 索引的用處 索引的分類 面試技術名詞 索引採用的資料結構 索引匹配方式 create table staffs id int primary key auto increment,name varchar 24 not null default...
相關知識點
nweb inf uclasses uweb.xml ulib n 從httpservlet 繼承,重寫doget dopost方法 n部署web.xml n 只有乙個物件 n 第一次請求的時候被初始化,只一遍 n 初始化後先呼叫init 方法,只一遍 n 每個請求,呼叫一遍service serv...