mysql------數(shù)據(jù)庫及服務(wù)器優(yōu)化
數(shù)據(jù)庫優(yōu)化 4-1 優(yōu)化表的類型
在mysql中,可以使用函數(shù)PROCEDUREANALYSE()對當前應(yīng)用的表進行分析,
4-2 通過拆分提高表的訪問效率
1.分庫分表
2.分區(qū)
主要目的:
1.減少表的記錄數(shù)
2.減小對操作系統(tǒng)的負擔壓力
4-3 使用中間表提高統(tǒng)計查詢速度
中間表的產(chǎn)生:
1.view視圖
2.重新生成一個新表
mysql服務(wù)器優(yōu)化 5.1 myisam讀鎖定
1.lock table t1 read
2.開啟另一個mysql連接終端,接著去嘗試:select * from t1
3.再insert、update和delete t1這張表,你會發(fā)現(xiàn)所有的數(shù)據(jù)都停留在終端上沒有真正的去操作
4.讀鎖定對我們在做備份大量數(shù)據(jù)時非常有用。
mysqldump -uroot -p123 test >test.sql
5.2 myisam寫鎖定
1.lock table t1 write
2.打開另一個mysql終端,嘗試去select、insert、update和delete這張表t1,你會發(fā)現(xiàn)都不能操作,都會停留在終端上,只有等第一個終端操作完畢,第二個終端才能真正執(zhí)行。
3.可見表的寫鎖定比讀鎖定更嚴格
4.一般情況下我們很少去顯示的去對表進行read和write鎖定的,myisam會自動進行鎖定的
6. 1 四種字符集問題
[client] #password?=?your_password port?=?3306 socket?=?/var/lib/mysql/mysql.sock defautl-character-set?=?utf-8 [mysqsld] port?=?3306 socket?=?/var/lib/mysql/mysql.sock character-set-server?=?utf-8 collation-server?=?utf8_general_ci
6. 2 binary log 日志問題
1.log-bin=mysql-bin
查看bin-log日志:
mysql>show binary logs;
6. 3 slow log 慢查詢?nèi)罩締栴}
1.有關(guān)慢查詢
開戶和設(shè)置慢查詢時間:
vi?/etc/my.cnf log_slow_queries=slow.log long_query_time=5
慢查詢次數(shù):
mysql>show global status like “%quer%”;
6. 4 socket 問題
[client] port?=?3306 socket?=?/tmp/mysql.sock [mysqld] port?=?3306 socket?=?/tmp/mysql.sock skip-locking
mysql socket無法登陸
1.有時登陸mysql時提示不能用socket登陸,此時可以換成tcp方式去登陸,但是可以測試時可以這樣用,但是必須要在PHP去用之前把這個事情解決了。
這樣就可以登陸,這樣就不用mysql.sock來登陸,而mysql.sock是啟動mysqld服務(wù)時產(chǎn)生的
6. 5 root 密碼丟失
root密碼丟失破解
service?mysqld?stop mysqld_safe?--skip-grant-tables?--user=mysql&?//跳過授權(quán)表mysql.user和mysql.db這些表 mysql?-uroot set?password=password("wei");?//用這一條語句結(jié)果報錯,就是因為加了--skip-grant-tables mysql>update?user?set?password=password("wei")?where?user="root"?and?host="localhost"; mysql>set?password?for?root@localhost=password("wei"); mysql>set?password=password("wei");?//和第五步一樣,都可能成功修改密碼