易截截图软件、单文件、免安装、纯绿色、仅160KB

高性能MySql学习笔记(一)

高性能MySql学习笔记
1.针对应用建立自己的索引
URL查找例子
    select * from tUrl where url='http://www.163.com';
以url(字符串)作行为索引会使得作为索引结构的B-Tree变大,可以移除url列上的索引,并添加一个url_crc索引列,
先建立表:
create tables tUrl(
    id int unsigned NOT NULL auto_increment,
    url varchar(255) NOT NULL,
    url_crc int unsigned NOT NULL DEFAULT 0,
    primary key(id)
);
通过以下方式查询:
    mysql> select * from queryHash where url_crc=CRC32( 'http://www.163.com' ) and url='http://www.163.com' ; 
1.url_crc列的索引性能较高
2.在有冲突的时候,再通过精确比较得到所需要列
3.如果冲突过多可以改由64位的hash, MD5()/SHA1(), 截取前16示例如下:
  mysql> select conv( right ( md5('http://www.csdn.net'), 16), 16, 10) as hash64;
select conv( right ( md5('http://www.csdn.net'), 16), 16, 10) as hash64;
+---------------------+
| hash64              |
+---------------------+
| 9270541833456602998 |
+---------------------+
注:Maatkit( http://www.maatkit.org/)包含了一个用户自定义函数(UDF),实现了Fowler/Noll/Vo64位哈希函数,速度非常快。
上述方法缺点是要手工维护hash值,可以通过使用触发器维护,分别为insert/update添加触发器:
delimiter |
create trigger url_crc_ins before insert on tUrl for each row begin
set NEW.url_crc=crc32(NEW.url);
end;
|
create trigger url_crc_upd before update on tUrl for each row begin
set NEW.url_crc=crc32(NEW.url);
end;
|
delimiter ;
验证一下:
 
mysql> insert into tUrl(url) values( 'http://www.csdn.net' );
mysql> select * from tUrl;
+----+---------------------+------------+
| id | url                 | url_crc    |
+----+---------------------+------------+
|  2 | http://www.csdn.net | 3


相关文档:

开启Mysql数据库InnoDB

解决The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it2009年12月29日 星期二 上午 11:15MySQL
出现如下语句:The ‘InnoDB’ feature is disabled; you need MySQL built with ‘InnoDB’ to have it working;
是mysql配置文件禁掉了这个选 ......

怎样解决mysql的too many connections问题?

可以参考下列文章
http://www.mysqlperformanceblog.com/2010/03/23/too-many-connections-no-problem/
结论如下:
(1)mysql默认会给super用户留一个连接,你可以用这个预留的连接来登录,来增加连接数;但是如果连接的用户全是super权限的,则这个预留的连接不存在。这时可以用以下的命令来设置连接数:gdb -p $(cat ......

MySQL Order By索引优化

在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY 或 GROUP BY 子句而无需做额外的排序。尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。   使用索引的MySQL Order By   下列的几个查询都会使用索引来解决 ORDER BY ......

Mysql安装

windows下:
解决办法:
1.检查你的Mysql目录有没有给系统的System用户权限。
2.删除掉你的 %WINDOWS%/my.ini 文件。
3.检查你的 c:/my.cnf 文件配置是否正确。 
修改%windir%\my.ini,增加
[mysqld]
#设置basedir指向mysql的安装路径
basedir=D:\Program\Tools\mysql
datadir=D:\Program\Tools\mysql\data& ......

MySQL如何利用索引优化ORDER BY排序语句


MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度。
MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作。
通过索引优化来实现MySQL的ORDER BY语句优化:
1、ORDER BY的索引优化。如果一个SQL语句形如:
SELECT [column1],[column2],…. fro ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号