本人学习了解了一些mysql的知识,也曾面试过mysql的数据库管理员,现与大家分享一些mysql初级的面试题。
Mysql的存储引擎,myisam与innodb的区别。
答:
1.myisam是非事务的存储引擎,适合用于频繁查询的应用。表锁,不会出现死锁,适合小数据,小并发。
2.innodb是支持事务的存储引擎,适合插入和更新操作比较多的应用,设计合理的话是行锁(最大区别就在锁的级别上),适合大数据,大并发。
数据表类型有哪些?
答:
myisam:成熟,稳定,易于管理,快速读取。一些功能不支持(事务等),表级锁。
innodb:支持事务,外件等特性、行级锁。占用空间答,不支持全文索引等。
mysql数据库发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
答:
1.设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。
2.选择合适的表字段数据类型和存储引擎,适当的添加索引。
3.mysql主从读写分离。
4.找规律分表,减少单表中的数据量,提高查询速度。
5.添加缓存机制,比如memcached,apc等。
6.不经常改动的页面,生成静态页面。
7.书写高效率的SQL。比如select * from table 改为 select field_1,field_2,field_3 from table 。
对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?
答:
1.确认服务器是否能支撑当前访问量。
2.优化数据库访问。
3.禁止外部访问链接(盗链),比如图片盗链。
4.控制文件下载。
5.使用不同主机分流。
6.使用浏览统计软件,了解访问量有针对性的进行优化。
简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)。
答:
索引是一种特殊的文件(innodb数据表上的索引是表空间的一个组成部分),他们包含着对数据表里所有记录的引用指针。
普通索引(有关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。<