mysql数据库使用的是什么字符集?
基本上现在的字符集 MySQL 都支持,查看 MySQL 支持的字符集列表, 有两种方法:
1. SQL 语句2. 查看元数据字典表查询结果:
1)第一列代表字符集名字;
2)第二列表示字符集排序规则;
3)第三列表示字符集描述;
4)第四列表示字符集编码的最大字节数。
mysql数据库下show命令的主要用法是什么?
方法/步骤 查看MySQL数据库存储引擎和默认引擎,可以用命令: show engines; 有时编写SQL语句时,出现了错误,想要查看上一条SQL错误,可以利用命令: show errors; 查看最后一个执行语句的错误、提醒和警告,可以用命令: show warnings; 查看系统的一些资源状态,可以利用命令: show status; 显示系统里的一些变量名称和变量值,可以利用命令: show variables; 有时需要查看MySQL服务器支持的不同权限,可以利用命令: show privileges;
方法/步骤查看MySQL数据库存储引擎和默认引擎,可以用命令:showengines;有时编写SQL语句时,出现了错误,想要查看上一条SQL错误,可以利用命令:showerrors;查看最后一个执行语句的错误、提醒和警告,可以用命令:showwarnings;查看系统的一些资源状态,可以利用命令:showstatus;显示系统里的一些变量名称和变量值,可以利用命令:showvariables;有时需要查看MySQL服务器支持的不同权限,可以利用命令:showprivileges;
mysql数据库cpu飙升800%,如何故障定位及优化?
mysql数据库cpu飙升800%,基本上就两种原因:
访问量大,大到你8核cpu都承受不了;
慢查询,数据库执行sql语句操作(查询数据、修改数据)会产生大量的逻辑读,将读出来的数据维护到临时表中(内存),系统需要消耗较多的cpu来维持内存与磁盘数据的一致性。
大多数情况下都是开发人员对sql的把握质量不够,导致慢sql查询的产生,进而影响数据库的整体运行状况。
大量行锁冲突、行锁等待或后台任务也有可能会导致实例的 CPU 使用率过高,但这些情况出现的概率非常低。
当我们的数据库性能下降的厉害或者cpu飙升时候,可以进行如下操作定位问题:
查询mysql进程列表
show full processlist;
获取到mysql当前使用的进程:
如果进程很多,说明请求量很大,需要区分是否正常业务流量,还是代码问题导致的。
查询慢查询日志
show variables like '%slow_query_log%';
找到慢查询日志文件/home/mysql/data3085/mysql/
slow_query.log
,即可找到慢查询日志信息,解决这些慢sql,你的cpu一定会降下来。避免数据库cpu飙升
实际开发过程中,我们对数据库的使用一定要小心,不能等问题发生了再去排查问题解决问题,而是要预防问题的发生,并且在问题可能发生的情况下,提前介入,避免问题扩大化。平时开发过程中需要做好一些准备工作:
增加CPU使用率告警机制,比如使用率超过80%就短信告警;
所有的sql语句必须走索引,有DBA则由DBA统一调控,没有的话开发人员先执行explain看sql执行计划,必须走索引,属于强制规则;
新功能上线必须进行压测;
日常mysql运行监控,慢查日志查看,将隐患扼杀在摇篮之中。