資源描述:
《mysql使用tips》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、MySQL使用tips>>教育資源庫 用mysql內(nèi)置函數(shù)轉(zhuǎn)換ip地址和數(shù)字利用兩個內(nèi)置函數(shù)i_aton:將ip地址轉(zhuǎn)換成數(shù)字型i_ntoa:將數(shù)字型轉(zhuǎn)換成ip地址 充分利用mysql內(nèi)置的format函數(shù)尤其是在處理字符格式的時候,例如將12345轉(zhuǎn)換成12,345這樣的,只要用:format(12345,0)即可,如果用format(12345,2)則顯示的是12,345.00了... 利用mysql的內(nèi)置函數(shù)處理時間戳問題eg:selectFROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y%D%M%h:%i:%s%x');結(jié)果
2、:20043rdAugust03:35:482004 利用mysql_convert_table_format轉(zhuǎn)換表類型需要DBI和DBD的mysql相關(guān)模塊支持才能用,例子:mysql_convert_table_format--user=root--passyisamtestyejr 修改mysql表中的字段名altertabletb_namechangeold_colne,var2:=b1+b2asb_sum,var1+var2astotal_sumfromtest_tablexxx; 用int類型存儲ip地址原先錯誤的認為必須用bigint才夠,后來發(fā)現(xiàn)使用
3、intunsigned類型就足夠了。:) 利用IF函數(shù)快速修改ENUM字段值一個例子:updaterulesetenable=if('0'=enable,'1','0')('0','1')notnulldefault'0' 事務(wù)無法嵌套 避免長時間的sleep連接造成的連接數(shù)超出問題設(shè)定全局變量eout和interactive_timeout為比較小的值,例如10(s),就能使每個sleep連接在10s之后如果還沒有查詢的話自動斷開?! ≡O(shè)定mysql客戶端的提示符(pr
4、ompt)exportMYSQL_PS1=(u:h:)d>則用mysql-hlocalhost-uroot-pxxdb_name登錄后,提示符變成:(root:localhost:)db_name>好用吧:),時時刻刻提醒你在哪個服務(wù)器上,盡量避免誤操作的發(fā)生更詳細的請查看MySQL手冊 整理MyISAM碎片1.)定期運行OPTIMIZETABLE命令即可2.)用mysqldump出數(shù)據(jù),然后重新import回去,這對大表來說顯然第一種方法比較方便 整理Innodb碎片1.)運行NULL命令,ALTERTABLEXXXENGINE=Innodb;2.
5、)同上的mysqldump方法 MySQL如果認為檢索的記錄數(shù)量超過總記錄數(shù)的30%,則選擇全表掃描,而非使用索引 MySQL5.0.3之后,VARCHAR字段后面的空格就不再刪除 升級到4.1.1或更高后,就很難降級回到4.0或4.1了,因為InnoDB使用了多個表空間的緣故 MySQL4.1之后,MySQL把字符串類型字段的長度定義理解為字符長度而不是字節(jié)長度 MySQL4.1=>5.0時,增加了一個新的啟動選項innodb_table_locks,它導致LOCKTABLE時也可以請求InnoDB表鎖。這個選項默認打開,不過可能在AUTOMIT=1和L
6、OCKTABLES應(yīng)用中會導致死鎖 5.0.3開始,在計算DECIMAL值和舍入精確值的時候采用精確數(shù)學,DECIMAL用更有效的格式來存儲 從5.0.12開始,自然連接和使用USING的連接,包括外部連接的衍生形式,都按照SQL:2003標準來處理了;這個變化導致減少了自然連接和使用USING的連接產(chǎn)生的結(jié)果字段數(shù),并且還將按照更合理的順序顯示這些字段,逗號比較符的優(yōu)先順序和JOIN,LEFTJOIN中的一樣了 在以前,等待超時的鎖會導致InnoDB回滾當前全部事務(wù),從5.0.13開始,就只回滾最近的SQL語句了 InnoDB和MyISAM表中空格結(jié)尾的TEXT
7、字段索引順序改變了。因此需要運行CHECKTABLE語句修復數(shù)據(jù)表,如果出現(xiàn)錯誤,就運行OPTIMIZETABLE或REPAIRTABLE語句修復,甚至重新轉(zhuǎn)儲(用mysqldump) MySQL5.0.3到5.0.5之間版本的MyISAM和InnoDB表中創(chuàng)建的DECIMAL字段升級到5.0.6之后會發(fā)生崩潰>>>>這篇文章來自..,。