mysql------数据库及服务器优化

数据库优化
4-1 优化表的类型

在mysql中,可以使用函数PROCEDUREANALYSE()对当前应用的表进行分析,
这里写图片描述

4-2 通过拆分提高表的访问效率

1.分库分表
2.分区
主要目的:
1.减少表的记录数
2.减小对操作系统的负担压力

4-3 使用中间表提高统计查询速度

中间表的产生:
1.view视图
2.重新生成一个新表


mysql服务器优化
5.1 myisam读锁定

1.lock table t1 read
2.开启另一个mysql连接终端,接着去尝试:select * from t1
3.再insert、update和delete t1这张表,你会发现所有的数据都停留在终端上没有真正的去操作
4.读锁定对我们在做备份大量数据时非常有用。
mysqldump -uroot -p123 test >test.sql

5.2 myisam写锁定

1.lock table t1 write
2.打开另一个mysql终端,尝试去select、insert、update和delete这张表t1,你会发现都不能操作,都会停留在终端上,只有等第一个终端操作完毕,第二个终端才能真正执行。
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 慢查询日志问题

1.有关慢查询
开户和设置慢查询时间:

vi /etc/my.cnf
log_slow_queries=slow.log
long_query_time=5

慢查询次数:
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服务时产生的

6. 5 root 密码丢失

root密码丢失破解

service mysqld stop
mysqld_safe --skip-grant-tables --user=mysql& //跳过授权表mysql.user和mysql.db这些表
mysql -uroot
set password=password("wei"); //用这一条语句结果报错,就是因为加了--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"); //和第五步一样,都可能成功修改密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值