高性能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
相关文档:
解决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配置文件禁掉了这个选 ......
今天终于找到自己调试尚学堂shopping项目时的问题所在了,通过查资料,对myeclipse和tomcat的部署又有了更深一个层次的了解,程序调通了,兴奋了一下下,哈哈。。
去后台添加数据发现从mysql中读出的中文全部现实为可爱的问号,这下好了,我心里也产生问号 ......
1.下载 MySQL 6.0免安装版
http://www.mysql.com/downloads/mirror.php?id=386828
2.将 MySQL6.0 解压到待安装目录(自己决定放到哪)。解压后默认文件夹名称为:mysql(当然可以自己更改),然后在环境变量中设置MYSQL_HOME(这样,以后可以用%MYSQL_HOME%引用安装目录)。如,我放在E盘根目录下,所以,MYSQL_HOME设置为 ......
MySQL Administrator 是什么软件?
MySQL Administrator 是一个专门用于管理 My SQL 4.X 和 5.X My SQL数据库的软件,可以使用这个软件备份My SQL数据库,还原My SQL数据库。
注:如果你的数据库是 MS SQL 2000 数据库,请参考这里,使用 MS SQL 2000 企业管理器管理
下载 MySQL Administrator 软件
http://61.139.76 ......
MySQL show的用法
a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称
b. show databases; // 显示mysql中所有数据库的名称
c. show columns from table_name from database_name; 或show columns from database_name.table_name; ......