在使用mysql的過程中,有個問題就是mysql的最佳化,mysql中longblob欄位在5.5版本中預設的為1M。 想改變這個問題,需要注意幾點: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > 1048576). You can change this value on the server by setting the max_allowed_packet'
對於MySQL資料庫,如果你要使用事務以及行級鎖就必須使用INNODB引擎。如果你要使用全文索引,那必須使用myisam。 INNODB的實用性,安全性,穩定性更高但是效率比MYISAM稍差,但是有的功能是MYISAM沒有的。修改MySQL的引擎為INNODB,可以使用外鍵,事務等功能,效能高。查看資料表的狀態複製代碼 代碼如下:SHOW TABLE STATUS FROM sites WHERE NAME='site'; SHOW TABLE STATUS FROM
使用length與char_length兩個函數length:是計算欄位的長度一個漢字是算三個字元,一個數字或字母算一個字元char_length:不管漢字還是數字或者是字母都算是一個字元對同一欄位分別使用length、char_length計算長度,並進行比較長度相同則欄位中無漢字,不相同則肯定有漢字複製代碼 代碼如下:SELECT * FROM t_ad t WHERE t.`userid` = 974 AND LENGTH( &
這兩天項目裡出了一個問題,LIMIT使用後報錯。 需求是這樣的,我有3張表,infor資訊表,mconfig物料配置表,maaply物料申請表,要求是讀出申請表中哪些人申請哪些物料 於是我先是這樣寫的: 複製代碼 代碼如下: SELECT infor.name,infor.phone,infor.add, mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime' FROM mapply right
建立與管理mysql資料庫的常用命令:1,使用SHOW語句找出在伺服器上當前存在什麼資料庫:mysql> SHOW DATABASES;2,建立一個資料庫MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3,選擇建立的資料庫mysql> USE MYSQLDATA; (按斷行符號鍵出現Database changed 時說明操作成功!)4,查看現在的資料庫中存在什麼表mysql> SHOW
網站運行很慢的時候,我就特別起知道為什麼這麼慢,所以我查啊查,資料庫絕對是很重要的一部分,裡面啟動並執行sql是絕對不能放過的。平時做項目的時候,我也會注意sql語句的書寫,寫出一些高效的sql來,所以我會經常測試自己寫的sql語句。我把我知道的二個方法,總結一下發出來。一,show profiles 之類的語句來查看1,查一下profile是不是開啟了,預設是不開啟的。mysql> show profiles; Empty set (0.02 sec) mysql> show
什麼是觸發器? 觸發器是資料庫的一個程式,他是用來監聽著資料表的某個行為,一旦資料表的這個行為發生了,馬上執行相應的sql語句 觸發器的文法結構: create trigger 觸發器的名稱觸發事件 on 監聽的表名 for each row 行為發生後執行的sql語句 觸發事件組成:;兩部分組成: 觸發事件發生的時間-----是在監聽的表的行為 after before 常用的是after 觸發器執行的內容:增刪改 建立order
建立預存程序時出錯資訊:複製代碼 代碼如下:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)原因:複製代碼