MySQL教程学习之面试题16_MySQL数据库综合型面试题汇总3

教程发布:风哥 教程分类:文章教程, 文章资源 更新日期:2019-04-15 浏览学习:345

一、如何调整生产线中MySQL数据库的字符集
1.修改my.cnf文件中的字符集配置
2. 查看当前字符集设置
mysql> show global variables like "character%";
3.用set分别设置字符集变量值
mysql> set global character_set_client=utf8;
mysql> set global character_set_connection=utf8;
mysql> set global character_set_results=utf8;
mysql> set global character_set_database;
mysql> set global character_set_server;
mysql> set global character_set_system;
二、请描述MySQL里中文数据乱码原理,如何防止乱码?
mysql客户端 mysql服务端 操作系统等字符集不一致导致的乱码,将上述字符集调成一致。

三、如何批量更改数据库字符集?
#!/bin/sh
cmd="mysql -uroot -pfgedu -e"
$cmd "show databases;"|grep -v Database >fgedu.net.cn.txt
databases=fgedu.net.cn.txt
for n in `cat $databases`
do
   $cmd "alter database $n default character set utf8;"
done

四、mysqldump导入导出默认把所有数据都缩减在一行里面,为了查看和修改方便,如何将数据以多行插入的形式导出。
用--skip-extend-insert选项
五、你是如何监控你能数据库的?
风哥MySQL教程提示:开源监控工具有很多,如zabbix,nagios
Lepus(天兔):简洁、直观、强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库监控更简单
六、mysql的权限怎么管理?
只给insert,update,select和delete四个权限即可。有时候delete都不给。

七、如何监控MySQL的增删改查次数?
mysql> show global status where variable_name in('com_select','com_insert','com_delete','com_update');
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_delete    | 0     |
| Com_insert    | 0     |
| Com_select    | 23546 |
| Com_update    | 0     |
+---------------+-------+
4 rows in set (0.00 sec)
八、MySQL索引的种类及工作原理。
风哥MySQL学习教程提示:
普通索引:最基本的索引,没有任何限制。
唯一索引:与普通索引类似,不同的是,索引列的值必须唯一,但允许有空值。
主键索引:它是一种特殊的唯一索引,不允许有空值。一张表只能有一个主键。
组合索引:就是将多个字段建到一个索引里。
九、如何自定义脚本启动MySQL(说出关键命令)
mysqld_safe  --defaults-file=/data/fgedu/3306/my.cnf  &
十、如何自定义脚本平滑关闭MySQL(说出关键命令)
mysqladmin -u root-pfgedu -S /data/fgedu/3306/mysql.sock shutdown

十一、如果发现CPU,或者IO压力很大,怎么定位问题?
1、首先我会用top命令和iostat命令,定位是什么进程在占用cpu和磁盘io; 
2、如果是mysql的问题,我会登录到数据库,通过show full processlist命令,看现在数据库在执行什么sql语句,是否有语句长时间执行使数据库卡住;
3、执行show engine innodb status\G命令,查看数据库是否有锁资源争用;
4、查看mysql慢查询日志,看是否有慢sql;
5、找到引起数据库占用资源高的语句,进行优化,该建索引的建索引,索引不合适的删索引,或者根据情况kill掉耗费资源的sql语句等

十二、请介绍一下公司现有的MySQL数据库架构是怎么样的,数据量多大?
这个问题,1.要么有经验。2.要么学习风哥的MySQL数据库架构课程了。

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】Oracle教程学习之面试题01_Oracle开发基础类面试题汇总01
【下一篇】MySQL教程学习之面试题15_MySQL数据库综合型面试题汇总2