
MySQL & Sphinx
williams2222
这个作者很懒,什么都没留下…
展开
-
mysql 随机获取记录 order by rand 优化
如果要随机获取记录数,在mysql里最简单的方法肯定是order by rand()了,但是这种方法只能在表记录极少的情况下才能使用。主要是因为order by rand()导致了using filesort.这个时候查询类型会变成all,索引会失效。只需简单的变通下,完成可以做到同样的效果。根据记录的类型,分类连续和非连续两种。连续指记录是连续存放的,并且有字段可以证明记录是连续的,...2009-02-28 16:07:56 · 252 阅读 · 0 评论 -
改善InnoDB恢复的时间
InnoDB的恢复速度是一个十分让人困惑的问题。这里有很多关于它的讨论:[url]http://bugs.mysql.com/bug.php?id=29847[/url][url]http://dammit.lt/2008/10/26/innodb-crash-recovery/[/url]这些问题导致InnoDB奔溃的时候,需要很长的启动时间。即使从备份文件恢复也会影响到(包括LVM...2009-07-08 22:35:08 · 96 阅读 · 0 评论 -
再实验mysql中批量查询使用in还是n+1?
延续上次的实验,[url]http://willko.iteye.com/blog/407964[/url]200m记录,innodb先从小量查询开始实验,只考虑随机情况,毕竟生产环境比较少出现顺序.20个值的情况[code="java"]| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (...2009-06-28 01:31:49 · 185 阅读 · 0 评论 -
mysql分页limit 优化
mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降[b]1.子查询优化法[/b]先找出第一条数据,然后大于等于这条数据的id就是要获取的数据缺点:数据必须是连续的,可以说不能有where条件,where条件会筛选数据,导致数据失去连续性实验下[code="sql"...2009-02-09 12:55:40 · 140 阅读 · 0 评论 -
安装mysql5 innodb存储引擎
今天把mysql5.0升级到5.1.30,发现配置的时候出错了。我用--with-innodb安装innodb引擎[quote]configure: WARNING: unrecognized options: --with-innodb[/quote]看了下帮助./configure --help结果没有--with-innodb选项了,原来要用--with-plug...2009-02-08 20:11:40 · 627 阅读 · 0 评论 -
整合编译mysql和tcmalloc失败的原因
google-perftools里的tcmalloc比glibc的malloc的分配效率和性能要搞多了,所以经常用来优化。据说,对mysql大并发下有效的提高性能。。环境 centos 5.3 mysql 5.1.30我编译mysql 的参数是[quote]./configure --prefix=/usr/local/mysql --without-debug --w...2009-02-08 10:41:38 · 410 阅读 · 0 评论 -
设置合适的 InnoDB 日志文件大小的计算方法
做下笔记,简单记录一下,InnoDB日志文件太大,会影响MYSQL奔溃恢复的时间,太小会增加IO负担参考:http://www.mysqlperformanceblog.com/2008/11/21/how-to-calculate-a-good-innodb-log-file-size/[code="sql"]mysql> pager grep sequencePAGER...原创 2009-02-08 10:37:19 · 551 阅读 · 0 评论 -
mysql中批量查询使用in还是n+1?
某日,在一LAMP群里,讨论这个,有些人倾向于in,有些人倾向n+1(用union组合结果),还说是baidu的dba去他们公司培训说一定要使用n+1.。其实,我看未必,使用in的话搜索只需走扫描一次索引就好了,因为是rang,从最小值扫到最大值。而使用n+1的话,每条sql都需从树根开始往下扫描,这样反而遍历的索引数多了。所以,我的看法是,当值之间比较相近(顺序)的时候使用in,当值之间...2009-06-14 01:45:08 · 633 阅读 · 0 评论 -
FYI, MySQL高效分页
在Percona Performance Conference 2009大会上来自yahoo的Surat Singh Bhati (surat@yahoo-inc.com) 和 Rick James (rjames@yahoo-inc.com)给大家分享了MySQL高效分页的经验。[size=large][b]一、概述[/b][/size][list][*]常见分页方式[*]s...原创 2010-03-05 17:23:00 · 436 阅读 · 0 评论 -
更改MySQL log size导致的问题
一db对innodb表执行dml操作出现错误:[code="java"]ERROR 1033 (HY000): Incorrect information in file: './db/table.frm'[/code]刚开始以为是表定义文件坏了,本想从salve复制一份覆盖,谁知执行show innodb status出现[code="java"]Cannot call SHOW INN...2009-09-13 12:59:20 · 230 阅读 · 0 评论 -
启动mysql出现错误,找不到系统表
之前的服务器被别人拿了,所以自己买了台美国vps,根据笔记安装完启动mysql,又启动不了。查看了错误日志[quote]090321 18:55:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/usr/local/mysql/libexec/mysqld: Table 'my...2009-03-22 02:05:08 · 176 阅读 · 0 评论 -
High Performance MySQL 笔录(schema/index 部分)
主要记录阅读High Performance MySQL后新发现的知识点。[b]1.uuid用binary保存[/b]建议uuid不要使用char来保存,而用binary(16)来保存。这里在长度上来讲用binary会节省一半。因为一个字符占用1个字节,而一个字节实际上可以表示0-256(2^8),用16进制的表示需要2个字节00-FF(0-256)。优化前:SET uuid = ...2010-05-19 18:49:36 · 154 阅读 · 0 评论