2011-04-15
(1)mysqld關閉命令:mysqladmin -u root shutdown。注意:windows命令以enter結束不是';',mysql命令行才是
(2)mysql終端接入,修改mysql.user表內容,添加授權用戶。insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","pppadmin",password("passwd"),'','','');
(3)mysql通過設置mysql.user表的host內容,限定用戶的IP端。如:'%',表示:任意IP段的主機都可訪問;'192.168.104.%',表示:104網段下的主機才能訪問。
(4)mysql 1044訪問數據庫權限錯誤。可以通過設置權限命令來控制: mysql>GRANT ALL PRIVILEGES ON *.* TO root[用戶名]@'%'[網段] identified by '123456'[密碼];
flush privileges;
(5)取消權限:revoke all on *.* from root@'192.168.104.%';
flush privileges;
(6)緩沖池(innodb_buffer_pool_size)緩存的數據頁類型有:索引頁、數據頁、undo頁、插入緩沖、自適應哈希索引、innodb存儲的鎖信息、數據字典等信息
(7)即使事務沒提交,Innodb存儲引擎依然會每秒將重做日志緩沖中的內容刷新到重做日志文件中。這解釋了為什么再大的commit事務時間也是很快,commit操作只以重做日志
文件內容刷新成功標志提交成功
2012-04-17
(1)window中通過服務和命令行啟動mysqld服務器,其實是啟動兩個資源,他們是兩個進程。如果通過命令行已啟動mysq(msyqld --console)的,此時通過命令行啟動服務
(net start mysql),那么services.ms里顯示已啟動,控制臺則顯示一直等待。
(2)Java內容
java HashTable內部實現是數組+鏈表,哈希值相同則在同一數組項下面構造鏈表。HashTable的的動態擴容rehash,initial Capacity*load fatory(0.75f)。
HashTable的不安全性,極端情況下退化成鏈表,那么插入會吃cpu,造成服務器癱瘓。方法:哈希值相等;哈希表數組長度取余相等。
java Stirng hashCode算法:BKDR Hash Function。C語言作者:Brian Kernighan and Dennis Ritchie。
java具體計算公式:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]。之所以選擇31,是因為它是個奇素數,如果乘數是偶數,并且乘法溢出的話,信息就會丟失,因為與
2相乘等價于移位運算。使用素數的好處并不是很明顯,但是習慣上都使用素數來計算散列結果。31有個很好的特性,就是用移位和減法來代替乘法,可以得到更好的性能:
31*i==(i<<5)-i。現在的VM可以自動完成這種優化。
重寫equals()方法,一定要重寫hashcode(),向hash的set,map插入時字面值一樣(個'abc'String對象,object源碼里hashCode是內存地址的映射值,不重寫的話他們hashCode
不同,我們要判斷的是字面值相同)
2012-04-23
(1)虛擬內存和磁盤I/O是緊密關聯的,從很多方面看來,它們只是同一件事物的兩面
2012-06-08
(1)java.lang.OutOfMemoryError: Java heap space:jvm默認heap大小64mb。加上JAVA_OPTS=-Xms64m(初始化64mb) -Xmx512m(最大512mb)
(2)終止進程命令:ntsd -c q -p pid ntsd -c q -pn ***.exe taskkill /pid 1234 /f