Mysql面试笔试题.docMYSQL面试题:简单叙述一下MYSQL的优化
.数据库的设计
尽量把数据库设计的更小的占磁盘空间.
.尽可能使用更小的整数类型.(mediumint就比int更合适).
.尽可能的定义字段为not null,除非这个字段需要null.
.如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录 格式比如char.
. 效.
.只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存 记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建 索引。 字段,首先就应该多复制这些字段,使索引更好的压缩。
.所有数据都得在保存到数据库前进行处理。
.所有字段都得有默认值。
.在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动 态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况 下更是如此。
系统的用途
.尽量使用长连接.
.explain 复杂的SQL语句。
.如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.
.LIMIT语句尽量要跟order by或者 次 full table scan.
.如果想要清空表的所有纪录,建议用truncate table tablename
而不是 delete from tablename.
.能使用 STORE PROCEDURE 或者 USER FUNCTION
的时候.
. data infile来导入大量数据,这比单纯的indert快好多.
.经常0PTIMIZE TABLE 来整理碎片.
.还有就是date 类型的数据如果频繁要做比较的话尽量保存在
unsigned int 类型比较快。
系统的瓶颈
.磁盘搜索.
并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间.
.磁盘读写(I0)
可以从多个媒介中并行的读取数据。
.CPU周期
。
.内存带宽
当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成 了瓶颈.
mysql如何实现高效分页 先看一下分页的基本原理(我拿的是CSDN那个百万级数据库来测 试):
SELECT * FROM 'csdn' ORDER BY id DESC LIMIT 100000,2000; 耗时:
分析:对上面的mysql语句说明:limit 100000,2000的意思扫描满足条 件的102000行,扔掉前面的100000行,返回最后的2000行。
问题就在这里,如果是limit 100000,20000,需
Mysql面试笔试题 来自淘豆网www.taodocs.com转载请标明出处.