`
jedy
  • 浏览: 151398 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
hightman实现了一个MySQL全文检索的插件。它只能使用在5.1.11-12,并且需要更改MySQL的源码,故对其做了一些修改,替换了一个MySQL后续版本中更改了的接口,去掉了一些不需要的功能。 hightman的插件使用了自己的wordlist和stopword list,并使用正向最大匹配分词,新的插件对算法没有任何改变。插件只支持utf8,就是说用于建索引的字段的字符集必须为utf8。wordlist 中只有26万的词汇,可能分词不是很准确,因为我不太清楚好的分词是什么样子,所以也说不准。支持normal mode和boolean mode,不支持query expansion。 ...
一般情况下使用的内存为每页4K,使用 huge page 的话默认是每页 2M。如果设置MySQL使用 huge page 至少有两个好处,一个是可以减少 Translation Lookaside Buffer (TLB) 失误以提高性能,另一个是利用 huge page不会swap的特性保证MySQL的内存不会被交换到swap中。MySQL 5.0.3之后在linux上支持huge page,可以使用 large-page 选项启动MySQL。当然还有一些相关的系统设置。echo 400 > /proc/sys/vm/nr_hugepages这个指定总共huge page的页数,可以放 ...
临时的禁用一个用户在MySQL中是不支持,不过还是有一些办法可以实现。MySQL是支持SSL连接的,可以设置希望禁用用户的SSL连接使得该用户无法再连上。比如把ssl_type从空字符串设为X509。
set @a:=N+1, @b:=-1;select * from t, (select id from t where if(rand()*(M - (@b:=@b+1)) < @a, @a:=@a-1, 0) limit 10 ) as tt where t.id = tt.id; 其中M是表的行数,这比order by rand() limit N将会快很多,而且应该是均匀随机的(感觉上是,懒的去证明了)。DELIMITER $$DROP PROCEDURE IF EXISTS `test`.`rand_rows` $$CREATE PROCEDURE `tes ...
昨天replication又出问题了。master上更改了max_allowed_packet,但slave上的忘记改了,结果导致master上过大的SQLslave不能取到。之后虽然在slave上也更改了max_allowed_packet,但start slave仍然不能成功。错误日志中的记录是:080409 18:37:31 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000251', position 607694155080409 18:51:23 [Note] Slave SQL thread initiali ...
看这个:http://tutorialblog.org/free-chart-and-graph-solutions/ Charts and graphs help the user to visualise data in a more meaningfull way than rows of text statistics. They are extensively used in reporting applications, for displaying earnings, website traffic etc - here we take a look at some pr ...
当使用enum或set类型时,order by是使用它们的内部整值来排序的,但是并不是所有的操作都是基于内部值得。max和min函数使用的是它们的字符串值来比较的,有点意外,不是吗?
按照sql标准,select如果不加order by子句,返回结果的顺序是不可靠的。 如果你希望保证顺序,必须要加上order by子句。 见下面的例子: innodb的情况 test@127.0.0.1>CREATE TABLE t ( -> ID INT NOT NULL PRIMARY KEY, -> PID INT, -> FOREIGN KEY (PID) REFERENCES t(ID) -> ) ENGINE=INNODB;Query OK, 0 rows affected (0.06 sec)test@127.0. ...
上月通过了MySQL的dev认证,果然还是寄来了个飞镖,只是从十字镖换成了三角镖。MySQL从2月18日起提高了中国的认证考试价格,一个认证从100美元跳到了400美元。质的飞跃啊!严重影响了我们的培训计划,送考试券促销完全不可行了。
在MySQL5.1中可以自己编写information_schema的插件,用于得到一些服务器的内部信息,这里提供了一个简单的例子,是显示会话的savepoint的。虽然他说会增加显示临时表的插件,但我实在不想等了,于是也照葫芦画了一个。mysql >create temporary table a (a int); create temporary table b (b int); select * from information_schema.mysql_temporary;Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows af ...
应某人要求比较了用C(gcc 3.4.6),Java(1.6),Perl(5.8),PHP(4)连接数据库并处理查询的性能。 C使用的是MySQL的C API,JAVA使用的是MySQL的Connector/J,Perl使用的是DBD::mysql,PHP使用的是mysql库。比较了连接的速度,结果集很小的查询的速度(select 'a')和结果集较大的查询的速度(select * from user limit 10000)。服务器配置为1G内存,CPU为Intel Xeon CPU 3040@1.86GHz(双核),操作系统为Centos4.5。测试结果 C J ...
一直想做drbd的性能测试,但一直没有时间,其中等买千兆的网线还等了一个星期。拖拖拉拉弄了一个多月,终于有了结果。使用的drbd版本是0.7.24。拷贝一个612M的目录,所需时间如下: fromto normal drbd normal 25s 33s drbd 28s 38s 拷贝10000个16K的文件
MySQL的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning。这个warning中显示了MySQL对SQL的解释,从这个解释中我们可以看到SQL的执行方式,对于分析SQL还是很有用的。比如:mysql>explain extended select * from t where a in (select b from i);+----+--------------------+-------+------+| id | select_type | table | type |+----+- ...
由于在MySQL中对子查询的优化不如连接,所以通常连接的速度会比子查询快,我们可以通过把子查询改写成连接来优化查询。改写的方法可以见:http://dev.mysql.com/doc/refman/4.1/en/rewriting-subqueries.html因为5.0开始支持子查询,所以这一节在新的手册中被删除了,必须要看4.1的手册。
soliddb是一个第三方的MySQL存储引擎,看到它网站上的测试报告说soliddb的数据扩展性,CPU扩展性和事务响应时间都比innodb强。于是自己下载了做了一些测试,也希望以后能用。结果发现结果很不好,批量插入的速度是innodb的一半,一个简单的select count(*)也比innodb慢一倍。大致看了一遍手册,觉得性能相关的参数主要就是soliddb_durability_level和soliddb_cache_size。soliddb_durability_level设为1和3插入的时间好像没有什么变化,soliddb_cache_size设为500M,应该足够了。
Global site tag (gtag.js) - Google Analytics