主页 > IT业界  > 

MySql面试宝典【刷题系列】

MySql面试宝典【刷题系列】

文章目录 一、Mysql 的存储引擎 myisam 和 innodb 的区别。二、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?三、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?四、锁的优化策略五、索引的底层实现原理和优化六、 什么情况下设置了索引但无法使用七、实践中如何优化MySQL八、SQL注入漏洞产生的原因?如何防止?九、索引的目的是什么?十、索引对数据库系统的负面影响是什么?十一、为数据表建立索引的原则有哪些?十二、什么情况下不宜建立索引?十三、主键、外键和索引的区别?


一、Mysql 的存储引擎 myisam 和 innodb 的区别。

答:

MyISAM 是非事务的存储引擎,适合用于频繁查询的应用。表锁,不会出现死锁,适合小数据,小并发。

innodb 是支持事务的存储引擎,合于插入和更新操作比较多的应用,设计合理的话是行锁(最大区别就在锁的级别上),适合大数据,大并发。

二、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

答:

设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。选择合适的表字段数据类型和存储引擎,适当的添加索引。mysql库主从读写分离。找规律分表,减少单表中的数据量提高查询速度。添加缓存机制,比如 memcached,apc 等。不经常改动的页面,生成静态页面。书写高效率的 SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE 三、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?

答:

确认服务器是否能支撑当前访问量。优化数据库访问。禁止外部访问链接(盗链), 比如图片盗链。控制文件下载。使用不同主机分流。使用浏览统计软件,了解访问量,有针对性的进行优化。 四、锁的优化策略

答:

读写分离分段加锁减少锁持有的时间4多个线程尽量以相同的顺序去获取资源 五、索引的底层实现原理和优化

答:B+ 树,经过优化的 B+ 树

主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB建议为大部分表使用默认自增的主键作为主索引。

六、 什么情况下设置了索引但无法使用

答:

以 “%” 开头的 LIKE 语句,模糊匹配OR 语句前后没有同时使用索引数据类型出现隐式转化(如 varchar 不加单引号的话可能会自动转换为 int 型) 七、实践中如何优化MySQL

答:

SQL语句及索引的优化数据库表结构的优化系统配置的优化硬件的优化 八、SQL注入漏洞产生的原因?如何防止?

答:

SQL注入产生的原因:程序开发过程中不注意规范书写 sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量 POST 和 GET 提交一些 sql 语句正常执行。

防止SQL注入的方式:

开启配置文件中的 magic_quotes_gpc 和 magic_quotes_runtime 设置执行 sql 语句时使用 addslashes 进行 sql 语句转换Sql语句书写尽量不要省略双引号和单引号。过滤掉sql语句中的一些关键词:update、insert、delete、select、 * 。提高数据库表和字段的命名技巧,对一些重要的字段根据程序的特点命名,取不易被猜到的。Php 配置文件中设置 register_globals 为 off ,关闭全局变量注册控制错误信息,不要在浏览器上输出错误信息,将错误信息写到日志文件中。 九、索引的目的是什么?

答:

快速访问数据表中的特定信息,提高检索速度创建唯一性索引,保证数据库表中每一行数据的唯一性。加速表和表之间的连接使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间 十、索引对数据库系统的负面影响是什么?

答: 负面影响: 创建索引和维护索引需要耗费时间,这个时间随着数据量的增加而增加;索引需要占用物理空间,不光是表需要占用数据空间,每个索引也需要占用物理空间;当对表进行增、删、改、的时候索引也要动态维护,这样就降低了数据的维护速度。

十一、为数据表建立索引的原则有哪些?

答:

在最频繁使用的、用以缩小查询范围的字段上建立索引。在频繁使用的、需要排序的字段上建立索引 十二、什么情况下不宜建立索引?

答:

对于查询中很少涉及的列或者重复值比较多的列,不宜建立索引。对于一些特殊的数据类型,不宜建立索引,比如文本字段(text)等 十三、主键、外键和索引的区别?

答:主键、外键和索引的区别

定义:

主键–唯一标识一条记录,不能有重复的,不允许为空外键–表的外键是另一表的主键, 外键可以有重复的, 可以是空值索引–该字段没有重复值,但可以有一个空值

作用:

主键–用来保证数据完整性外键–用来和其他表建立联系用的索引–是提高查询排序的速度

个数:

主键–主键只能有一个外键–一个表可以有多个外键索引–一个表可以有多个唯一索引
标签:

MySql面试宝典【刷题系列】由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MySql面试宝典【刷题系列】