mysql 数据库查询随机数量条目的效率问题及解决办法

2012-03-26 22:51:57  |   才被阅读:518 次  |   要评论?
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:LP's 博客
标签:

最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。

继续阅读全文...

MySQL慢语句处理

2012-03-25 22:13:57  |   才被阅读:234 次  |   要评论?
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:MySQL实践积累
标签:

依稀记得是上周开始部署了mysql的节点监控程序到线上环境,设定的查询周期是90秒一次,超过10秒的查询和超过x个连接的时候就会发报警邮件给DBA。这个在镜像库部署的时候,会经常发现开发人员查一下没用索引的语句或者没有limit n的语句,这些没语句会对数据库造成很大的影响,例如一个几千万条记录的大表要全部扫描,或者是不停的做filesort,对数据库和服务器造成io影响等。这是镜像库上面的情况。

继续阅读全文...

MySQL 数据库性能优化之缓存参数优化

2012-03-21 00:28:11  |   才被阅读:366 次  |   要评论?
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:简朝阳
标签:

数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO。本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化。

继续阅读全文...

MySQL 数据库性能优化之SQL优化

2012-03-21 00:26:46  |   才被阅读:382 次  |   要评论?
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:简朝阳
标签:

这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础

继续阅读全文...

MySQL 数据库性能优化之表结构优化

2012-03-21 00:24:55  |   才被阅读:601 次  |   才1条评论
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:简朝阳
标签: ,

很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。

继续阅读全文...