mysql replace用法1.replace intoreplace into table (id,name) values('1','aa'),('2','bb')此語句的作用是向表table中插入兩條記錄。如果主鍵id為1或2不存在就相當於insert into table (id,name)
1 mysql為單進程多線程的架構2 查看當前資料庫支援的引擎 show engines\G;3 innodb的後台線程有7個,4個IO THREAD,1個MASTER THREAD,1個鎖,1個錯誤監控線程。 show engine innodb status\G;4 innodb 的記憶體組成:緩衝池,重做日誌緩衝池,額外的記憶體池 show variables like 'innodb_buffer_pool_size'\G;(緩衝池) show variables
這次繼續mysql的索引問題,這裡還是有不少原則可以總結一下的,大致歸納了如下面的1 對於複合式索引,如果查詢條件中有最左邊的一個,一般都會用到, 比如有索引(a,b),在SQL語句中如果有select * from table where a='.....',則這個索引一般用到,是最左匹配原則,但如果是按where
最近在幫人調優MYSQL時,感覺mysql的query cache其實並不是越大越好的,因為其實當資料表有如下變化時,CACHE實際時失效的:包括: INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等所以如果表是頻繁讀的話,那對query cache調整下還可以,否則還是沒怎麼作用的.附調整參數:Query Cache相關參數:query_cache_size QC佔用空間大小,通過將其設定為0
在mysql 5中,開始支援事務了,在使用中要搭配mysqli來進行,有一定的模式,現小結如下<?// Instantiate the mysql class $mysqldb = new mysqli("localhost","root","xxx","xxx"); // Start by assuming the transaction operations will all succeed $success = TRUE; // Disable the
mysql innodb中,還是存在當恢複recovery故障後,時間很長的問題,查了下,原來原因如下:當故障發生,重新啟服務後,會自動完成恢複操作,將資料庫恢複到之前一個正常狀態。恢複進程會完成兩步,第一步:檢查redo日誌,將之前完成並提交的事務全部重做;第二步:將undo日誌中,未完成提交的事務,全部取消。那麼,就僅僅做了這麼兩步為什麼恢複過程會變得如此漫長呢?在InnoDB未對恢複速度做提升之前,MySQL的bug列表中,曾被提出了兩個改進請求:Bug #29847和Bug #49535
在一些情況下,MySQL可以直接使用索引來滿足一個 ORDER BY 或 GROUP BY 子句而無需做額外的排序。儘管 ORDER BY 不是和索引的順序準確匹配,索引還是可以被用到,只要不用的索引部分和所有的額外的 ORDER BY 欄位在 Where 子句中都被包括了。下列的幾個查詢都會使用索引來解決 ORDER BY 或 GROUP BY 部分:Select * FROM t1 orDER BY key_part1,key_part2,... ;Select * FROM t1
Can't open file: '.\test\mytable.frm' (errno: 24)shell> perror 24OS error code 24: Too many open files 這樣的錯誤的話,應該是mysql的檔案描述符不夠了,解決的方法為,增加操作系統的描述符號:設定OS參數(如果你有許可權的話):在檔案/etc/security/limits.conf新增如下行:mysql soft nofile 65535mysql hard nofile 65535
前幾天, 在管理系統的時候遇到一個奇怪的問題, 今天才有機會安裝好MySQL環境來重現此問題,由於不是最原始的環境, 所以未必能夠完全重現, 我只能努力重現關鍵問題了.. 我覺得此問題有點特別, 故在此大概的回想下當時的情景..工作時, 執行了一個su – mysql 的命令, 遇到了下面這樣一個錯誤..view sourceprint?1 [root@dbmain ~]# su - mysql 2 su: cannot set user id: Resource temporarily