mysql性能优化建议

小葵花大叔有开课了,15年10月15号下午给我们讲了mysql性能优化的21条建议,我在笔记中写下了其中18条,在此先列为敬:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、考虑到查询缓存。在进行数据库查询工作中,尽可能避免动态变量,如now(),random()等函数。可以将其存储在变量中string data=now(),然后写入到查询语句里;

2、使用explain作为优化查询的参考;

3、简历索引,加快查询;

4、当只查询一行数据时,使用limit或者thinkphp中使用find,加快查询速度;

5、当联表查询时,链接的字段尽量使用整形,当不可避免时,也尽量保证数据类型相同,字符集相同;

6、不要使用order by rand,当要使用“随便看看”等类似功能时,可以先生成随机id,再进行查询。mysql使用order by rand时,执行顺序是先查询所有记录,然后随机抽取数据;

7、避免使用select *,需要什么读取什么;

8、为每个表设计一个id主键;

9、使用enum而不是varchar,可以用于固定类型的,比如姓名,国家等,类似索引方式储存;

10、使用procedure analyse(),为你的优化提供建议(仅仅是建议);

11、合理使用prepared statement;

12、在恰当的时候,使用mysql unbuffered query()这种无缓存查询;

13、ip字段设置成unsigned int类型,这样将字符串转化成整形;

14、垂直分割,将不经常查询的字段存储在另一张表格上,当都需要时,利用联表查询;

15、拆分较大的delete与insert操作,不要让别的操作排队太久,提高用户体验;

16、选择正确的存储引擎,比如myisam更适合查询,innodb使用count效率较低(相比较myisam而言);

17、使用一个映射;

18、减少长链接。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

其实,我们可以发现,所有的规则都是围绕一条原则:根据mysql的查询规律进行优化。比如建议3和建议6,可以很明显直观地发现。

这是一个很深又很现实的哲理,知己知彼百战百胜。很类似我们看的小说,修真修炼其实都是符合世界的规律,如果这个世界变了,像我们的世界一样,不存在修真规律,这一切就不同的。古时候,人类的生存难以保障,许多部落的守护神会是鱼等可以大量繁殖的动物,这是一种生殖崇拜,是因为人们根据当时的条件,选择了多生以此来壮大自己的种族,放在如今,我们的生存条件好了后,我们根据这个条件,选择了优生。我们做出的大部分的选择,都是根据自己所能分析得到的数据。我们偶尔会说,某些人的目光短浅,但是,这个人短浅的选择也是根据他短浅的目光所做出的。如何根据当前的条件进行最优的选择,这是一种能力,需要培养,但是并不是我们的主题,我们跑题跑太久了,需要回到主题:如何更好的了解规则,认识社会,认识世界。

认知是行动的前提。认知对于大部分刚毕业的学生而言,包括我,非常重要。在小时候,我们并不知道为什么要学习,这是父母的选择,大学毕业后,就轮到我们自己选择了,然而我们对这个社会不了解,我们也许有目标,但是我们却不知道选择哪条路靠近我们的目标。曾近和人谈到过这个问题,她说了一句很深的话,也许她自己都没意识到:“知道自己想要什么就好”。这是个人生意义的问题,年轻的我认知必定是片面的,在此不讨论。假设知道了我们想要什么,如何靠近目标,就需要我们对这个社会有很好的了解。

how to learn world ?

如果我写出我自己的看法,写出一二三条建议,那么这篇文章就成了议论文,然而我们是一篇心得体会文章,所以就到此结束吧。心得在上面,体会在下面。呵呵呵呵呵。

to be continue......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值