mysql摘要
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