MySQL
文章平均质量分 56
ClintNorthwood
已不可用
展开
-
mysql优化索引 —— Using filesort
用Explain分析SQL语句的时候,经常发现有的语句在Extra列会出现Using filesort,根据mysql官方文档对他的描述:引用MySQL must do an extra pass to find out how to retrieve the rows in sorted order. The sort is done by going through all row原创 2009-06-08 14:54:00 · 52473 阅读 · 10 评论 -
建立索引的原则
<br />索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则: <br />1. 在经常用作过滤器的字段上建立索引; <br /> <br />2. 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引; <br /> <br />3. 在不同值较少的字段上不必要建立索引,如性别字段; <br /> <br />4. 对于经常存取的列避免建立索引; <br /> <br />5. 用于联接转载 2011-03-02 14:33:00 · 732 阅读 · 0 评论 -
mysql各版本之间的差别
功能 版本(开始支持的版本)<br />镜像(动态复制) 3.23在MyISAM数据表中进行全文搜索 3.23BDB数据表开始支持事务 3.23.34InnoDB数据表开始支持事务处理 3.23.34InnoDB数据表上的引用集成性检查功能 3.23.34=======================转载 2011-02-25 16:19:00 · 1045 阅读 · 0 评论 -
通过force index了解的MySQL查询的性能优化
查询是数据库技术中最常用的操作。查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端。虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响。因此,本文就在MySQL中常用的查询优化技术进行讨论。讨论的内容如:通过查询缓冲提高查询速度;MySQL对查询的自动优化;基于索引的排序;不可达查询的检测和使用各种查询选择来提高性能。一、 通过查询缓冲提高查询速度一般我们使用SQL语句进行查询转载 2010-06-07 22:57:00 · 752 阅读 · 0 评论 -
数据库中的水平分割和垂直分割
<br />1。水平分割:按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。<br />水平分割通常在下面的情况下使用:<br />A 表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询速度。<br />B 表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。<br />C需要把数据存放到多个介质上。<br /> <br />例如法规表law就可以分成两个表active-law和 inactive转载 2010-08-04 16:24:00 · 751 阅读 · 0 评论 -
mysql查看数据库大小,索引大小
mysql> use information_schemaDatabase changedmysql> select concat(round(sum(index_LENGTH)/(1024*1024),2),MB) as Data Size from tables where table_schema=bbs; +-----------+| Data Size |+---------转载 2010-05-04 14:49:00 · 1791 阅读 · 0 评论 -
OPTIMIZE TABLE的作用
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使转载 2010-03-26 16:40:00 · 1089 阅读 · 0 评论 -
mysql里like结果不准确问题的解决方案
问题出现的原因是:在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。 方法一:解决方法是对于包含转载 2010-03-26 17:00:00 · 2534 阅读 · 0 评论 -
获取mysql的表注释和字段注释
表注释在 information_schema 库的 TABLES 表中TABLE_COMMENT 字段里或者使用:show table status最后一列:Comment 就是表注释 获取一个表里面的字段注释的sql:show full fields from table 最后一列:Comment 就是字段注释原创 2010-03-26 15:19:00 · 24103 阅读 · 2 评论 -
最近的两条sql效率优化心得
第一条:select * from where field in (1,2,3) 这种写法应该舍弃了,而应该这样写:select * from table where field = 1 or field = 2 or field = 3 为什么呢?凡事只有做过才知道,自己建个表,插入10W条测试数据,用sql测试一下便知,因为工作便利,我在产品机和外网测试机都已经测试过原创 2010-01-06 12:06:00 · 576 阅读 · 0 评论 -
用mysqldumpslow分析mysql的slow query log
mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能, 要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行 long_query_time = 1 log-slow-queries = /var/youpath/slow.log log-queries-not-using-indexes转载 2009-11-20 10:18:00 · 692 阅读 · 0 评论 -
分库分表hash算法
function hash_datebase($u, $s = 4){ $h = sprintf("%u", crc32($u)); $h1 = intval(fmod($h, $s)); return $h1;} for($i=1;$i100;$i++){echo hash_datebase($i);echo "";} function hash_table($u, $n =原创 2009-11-12 15:49:00 · 3046 阅读 · 0 评论 -
mysqldump及其命令用法
MySQL数据库的备份工具有很多,不过这里介绍的是一个小巧好用的mysqldump工具,位于数据库目录下bin/mysqldump.exe.这几天用phpMyAdmin备份数据库的时候出现乱码,反复在本地跟远程的Dreamhost空间上测试了数据库,但是还是导出数据库会出现乱码,应该是phpMyAdmin出现的问题,数据库本身没有问题.扯远咯,呵呵.我Google到的关于mysqldump工具的相原创 2009-10-15 10:41:00 · 18244 阅读 · 0 评论 -
MySQL多主同步 负载均衡
解决多台写服务器主自增长ID重复问题二台Mysql服务器,他们的IP地址分别为:A:192.168.0.97B:192.168.0.98数据库都是 test_3306首先我给两台服务器的my.ini 贴出来A:my.iniserver-id=2master-host=192.168.0.98master-user=mydbmaster-password=123master-port=3306m转载 2009-06-19 18:03:00 · 3729 阅读 · 0 评论 -
phpmyadmin连接多个MySQL数据库
phpmyadmin的根目录下建立config.inc.php,如果已有则无必要 写入如下代码: //phpmyadmin 配置文件//本地MySQL数据库$i=1;$cfg['Servers'][$i]['user'] = 'root';$cfg['Servers'][$i]['password'] = 'root';$cfg[原创 2009-06-25 12:04:00 · 7896 阅读 · 0 评论