mysql 網誌庫存

0

如何解決MYSQL令CPU使用率過高

主機(Windows 2003 + IIS + PHP + MYSQL )近來 MySQL 服務進程 (mysqld-nt.exe) CPU 佔用率總為 100% 高居不下.此主機有10個左右的database, 分別給十個網站調用.據朋友測試,導致 mysqld-nt.exe cpu 佔用奇高的是網站A,一旦在 IIS中將此網站停止服務,CPU佔用就降下來了.一啟用,則馬上上升.

MYSQLCPU 佔用100% 的解決過程
今天早上仔細檢查了一下.目前此網站的七日平均日 IP 為2000,PageView 為 3萬左右.網站A 用的 database目前有39個表,記錄數 60.1萬條,佔空間 45MB.按這個數據,MySQL 不可能佔用這麼高的資源.
於是在服務器上運行命令,將mysql 當前的環境變量輸出到文件output.txt:
d:\web\mysql>mysqld.exe--help >output.txt
發現 tmp_table_size 的值是默認的 32M,於是修改 My.ini, 將tmp_table_size 賦值到200M:

d:\web\mysql>notepad c:\windows\my.ini
[mysqld]
tmp_table_size=200M

然後重啟 MySQL服務.CPU佔用有輕微下降,以前的CPU佔用波形圖是 100%一根直線,現在則在 97%~100%之間起伏.這表明調整tmp_table_size 參數對 MYSQL性能提升有改善作用.但問題還沒有完全解決.
於是進入 mysql的shell 命令行,調用 show processlist, 查看當前 mysql 使用頻繁的 sql 語句:

mysql> showprocesslist;

反覆調用此命令(每秒刷兩次),發現網站 A 的兩個 SQL 語句經常在 process list 中出現,其語法如下:

SELECT t1.pid, t2.userid, t3.count, t1.date
FROM _mydata AS t1
LEFT JOIN _myuser AS t3 ON t1.userid=t3.userid
LEFT JOIN _mydata_body AS t2 ON t1.pid=t3.pid
ORDER BY t1.pid
LIMIT 0,15

調用 show columns 檢查這三個表的結構 : 閱讀全部 »

0

優化索引可使MySQL整機負載降低很多

某個MySQL服務器負載高於預警的報告,連接到該服務器後,首先查看負載情況:
[[email protected] ~]$ w
16:34:33 up 54 days, 4:22, 5 users, load average: 67.31, 70.10, 51.90
loadavg已經飆到雙位數了,確實非常高,通過TOP查看進程的佔用如下:
[[email protected] ~]$ top
top - 16:34:40 up 54 days, 4:22, 5 users, load average: 67.77, 70.15, 52.01
Tasks: 198 total, 3 running, 195 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 0.2%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 33554432k total, 32247564k used, 1306868k free, 426440k buffers
Swap: 49150856k total, 80k used, 49150776k free, 20735220k cached 閱讀全部 »

標籤: , ,
0

一鍵安裝LNMP的工具「 Centmin Mod」

在 Linux 上安裝 Nginx, MySQL, PHP(俗稱 LNMP)就是一行命令的事情,實在不需要什麼 「教程」,就算要教程 google/baidu 一下就可以搜到一大把,實在沒必要再 「求」 一遍。比如,在 Ubuntu 12.04 上安裝 Nginx, MySQL, PHP:

$ sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql nginx php5-fpm
個人不推薦新手一開始就使用一鍵安裝工具,一鍵安裝工具隱藏了細節,不利於學習。不過自己動手配過幾次系統、熟悉了 Linux 以後再回過頭來看,使用一些一鍵安裝工具還是很方便的,一鍵安裝工具除了能安裝必要的軟件外還有一些附加功能,比如 「關閉 SELINUX」、「更改 SSH 端口」、「增加一個 vhost」 等。這裡介紹的一鍵安裝工具 Centmin Mod 是由原 Centmin 腳本改良而來,貌似原 Centmin 停止更新了。 閱讀全部 »

0

使phpMyAdmin 同時支援 Big5 & UTF-8

phpMyAdmin 同時支援 Big5 & UTF-8
php 4.3.9
MySQL 版本 5.0.19-max
phpmyadmin 版本: 2.6.4-pl4
閱讀全部 »

標籤: , ,
0

出現{error while loading shared libraries: libmysqlclient.so.15}的解決方法

使用FLASHFXP客戶端連接服務器上的FTP提示如下:
pure-ftpd: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
閱讀全部 »

0

CentOS中MySQL監控好工具 - mytop

mytop是類似 top 的 MySQL 監察工具。執行 mytop 後,它會每隔幾秒更新一次,而且也可以針對性地監察某一個資料庫。

快速安裝 mytop: 閱讀全部 »

0

為Linux安裝memcache

Memcache是一套和php兼容的內存高速緩存插件,可運作於Linux,不僅可以緩存變量等對象,而且還可以與MySQL配合,緩存數據查詢。由於Memcache在內存中緩存數據,因此它的讀取寫入速度非常之快,能為大容量快速變化的動態數據提供高速緩存。 閱讀全部 »

0

5個常用經典的MySQL語法教學

本文章將介紹5個常用的經典MySQL語法教學給各位,當然部分功能可以用php來達到效果,但同時亦可以用mysql來做,喜歡用哪個方法就按自己對哪個語法較熟悉來操作。

1. 查詢你的數庫容量有多少

SELECT
  table_schema AS 'TEST',
  Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',
  Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'
FROM information_schema.tables
GROUP BY table_schema ;

2. 查找表中的主鍵(PRIMARY KEY)

 SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING (constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
  AND t.table_schema='db'
  AND t.table_name=tbl'

3. 顯示數據庫結構

DESCRIBE mytable;  

4. 計算生日

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;

5. 兩個時間的時間差

UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTAMP( dt1 )

多記錄MySQL常用語法可有利提高開法網站或數據庫的速度。