忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12345下一页
最近访问板块 发新帖
查看: 26724 | 回复: 41

[MYSQL]简单叙述一下MYSQL的优化(一个面试题.每次没能完全答对。各位补充一下.) [复制链接]

论坛徽章:
0
发表于 2007-03-25 10:50 |显示全部楼层
一个面试题.每次没能完全答对。各位补充一下.或者发表自己的答案:cry:

现在大概列出如下:(忘各位补充)
1.数据库的设计
尽量把数据库设计的更小的占磁盘空间.
1).尽可能使用更小的整数类型.(mediumint就比int更合适).
2).尽可能的定义字段为not null,除非这个字段需要null.
3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.
4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效.
5).只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。
6).所有数据都得在保存到数据库前进行处理。
7).所有字段都得有默认值。
8).在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。
2.系统的用途
1).尽量使用长连接.
2).explain 复杂的SQL语句。
3).如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.
4).LIMIT语句尽量要跟order by或者 distinct.这样可以避免做一次full table scan.
5).如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename.
6).能使用STORE PROCEDURE 或者 USER FUNCTION的时候.
7).在一条insert语句中采用多重纪录插入格式.而且使用load data infile来导入大量数据,这比单纯的indert快好多.
8).经常OPTIMIZE TABLE 来整理碎片.
9).还有就是date 类型的数据如果频繁要做比较的话尽量保存在unsigned int 类型比较快。
3.系统的瓶颈
1).磁盘搜索.
并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间.
2).磁盘读写(IO)
可以从多个媒介中并行的读取数据。
3).CPU周期
数据存放在主内存中.这样就得增加CPU的个数来处理这些数据。
4).内存带宽
当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈.

[ 本帖最后由 HonestQiao 于 2007-3-25 17:42 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
发表于 2007-03-25 16:43 |显示全部楼层
说得好

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
发表于 2007-03-25 17:44 |显示全部楼层
OReilly.High.Performance.MySQL

这本书不错。

论坛徽章:
0
发表于 2007-03-26 10:22 |显示全部楼层
原帖由 HonestQiao 于 2007-3-25 17:44 发表
OReilly.High.Performance.MySQL

这本书不错。



提几个关键字吧.不要提这本书了。乔老大.

论坛徽章:
0
发表于 2007-03-26 13:52 |显示全部楼层
太水了,都是照书上读的,呵呵,mysql优化无非就是分表,结构设计,索引的设计

数据结构整好来就是答案

论坛徽章:
0
发表于 2007-03-26 14:29 |显示全部楼层
一般般

有些有相对性的,,不适合绝对情况

重头戏还是在底层这块。。。前台基本可以忽略。

一般写好,语法没问题,测试,语义没问题就可以。。。写的时间久了,就会有多种写法,测试下就知道哪个比较适合。

前台快,能快多少。。。

和系统整体设计,数据库设计来比,,这根本不算什么

论坛徽章:
0
发表于 2007-03-26 16:15 |显示全部楼层
原帖由 wuwei517200 于 2007-3-26 13:52 发表
太水了,都是照书上读的,呵呵,mysql优化无非就是分表,结构设计,索引的设计

数据结构整好来就是答案



支持

论坛徽章:
0
发表于 2007-03-26 16:19 |显示全部楼层
原帖由 yueliangdao0608 于 2007-3-25 10:50 发表
5).如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename.


我记得delete * from tablename 是直接把表删掉再重建一个同样结构的空表的,应该不慢吧。

论坛徽章:
0
发表于 2007-03-26 18:42 |显示全部楼层
原帖由 wuwei517200 于 2007-3-26 13:52 发表
太水了,都是照书上读的,呵呵,mysql优化无非就是分表,结构设计,索引的设计

数据结构整好来就是答案


让你详细谈呢?

论坛徽章:
0
发表于 2007-03-27 09:16 |显示全部楼层

回复 1楼 yueliangdao0608 的帖子

真是不明白中国公司招人的办法是否科学,好多工作岗位都是杀鸡用牛刀,鸡蛋里挑骨头。个人认为其实考察人的工作态度、为人处世,一句话人品可能会更好一点。不过想想也许这是发展过程必经的阶段,企业总比政府、事业单位更有效率,更注重业绩。
   记得刚去一家网络公司面试,题目是:一个小偷程序,提取亚虎的某些信息。但是正值php3,我就谈谈具体做法的步骤,谁知道哪个白痴面试官,一定要我现场写程序出来,给了一台不能上网的机器。我当时真实的想法:他想发现中国的爱因斯坦。

[ 本帖最后由 yuxiaqiao 于 2007-3-27 09:24 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP