
MySQL
文章平均质量分 77
pcyph
这个作者很懒,什么都没留下…
展开
-
MySQL 索引最佳实践之问题反馈
MySQL 索引最佳实践之问题反馈我之前发布的 PPT —— 《MySQL 索引最佳实践》中,有很多人提了很多问题,我没有时间一一回答,于是我决定把这些问题集中在一起进行回答。问:我们团队中的一人想要使用 bigint 字段类型来代替 25-30 长度的 varchar 类型来存储 CRC64 数据,然后将索引也改成 bigint 的索引,这会节省索引的空间。请问这否是合理的性能优化方原创 2015-05-13 13:29:29 · 21855 阅读 · 0 评论 -
MySQL索引类型一览 让MySQL高效运行起来
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了原创 2014-10-28 08:49:23 · 27006 阅读 · 0 评论 -
MySQL中的WITH ROLLUP
MySQL的扩展SQL中有一个非常有意思的应用WITH ROLLUP,在分组的统计数据的基础上再进行相同的统计(SUM,AVG,COUNT…),非常类似于Oracle中统计函数的功能,Oracle的统计函数更多更强大。下面演示单个司机以及所有司机的总行驶里程数和平均行驶里程数:mysql> select name,sum(miles) as 'miles/driver' -> f原创 2015-05-18 00:03:49 · 23453 阅读 · 2 评论 -
轻松掌握MySQL数据库锁机制的相关原理
在一个update和insert操作频繁的表中,少量数据测试的时候运行良好,在实际运营中,因数据量比较大(21万条记录),会出现死锁现象,用show processlist查看,可以看到一个update语句状态是Locked,一个delete语句状态是Sending data。查看了一下参考手册,把锁定相关的资料整理下来,以便自己记录和追踪该问题的解决情况:MySQL 5.1支持对MyIS原创 2015-05-18 18:13:41 · 23017 阅读 · 0 评论 -
MySQL的语句执行顺序
MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。下面我们来具体分析一下查询处理的每一个阶段FORM: 对FROM的左原创 2015-05-18 18:15:53 · 1686 阅读 · 4 评论 -
提高SQL的查询效率
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:1select id from t where num is null可以在原创 2015-05-18 18:21:34 · 1599 阅读 · 0 评论 -
MySQL使用索引的场景及真正利用索引的SQL类型
1. 为什么使用索引在无索引的情况下,MySQL会扫描整张表来查找符合sql条件的记录,其时间开销与表中数据量呈正相关。对关系型数据表中的某些字段建索引可以极大提高查询速度(当然,不同字段是否selective会导致这些字段建立的索引对查询速度的提升幅度不同,而且索引也并非越多越好,因为写入或删除时需要更新索引信息)。对于MySQL的Innodb储存引擎来说,大部分类型的index均以原创 2015-05-18 18:23:03 · 4216 阅读 · 0 评论 -
MySQL技术站
http://imysql.cn/taxonomy/term/15原创 2015-05-17 18:13:11 · 22064 阅读 · 0 评论 -
MySQL 数据类型
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。 表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128原创 2015-05-19 10:19:20 · 1573 阅读 · 1 评论 -
MYSQL中宽度指示器
1,在老版本的MySQL 3.22中,MySQL的单表限大小为4GB,当时的MySQL的存储引擎还是ISAM存储引擎。但是,当出现MyISAM存储引擎之后,也就是从MySQL 3.23开始,MySQL单表最大限制就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储 引擎单表大小限制已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面原创 2015-05-19 12:40:14 · 1681 阅读 · 1 评论 -
Mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的解决方法
今天在做一个功能的时候,用到两个时间戳相减来做查询条件,由于其两个字段都是unsigned的,并两个的大小是不一样。所以直接相减查询的时候,就出现ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误,因为结果可能会出现负数。。。。过后查资料,发现可以通过下面的方法来解决:[sql]原创 2015-11-13 15:56:35 · 2622 阅读 · 0 评论 -
MySQL中count函数使用方法详解
count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧。count(*) 它返回检索行的数目, 不论其是否包含 NULL值。SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。例如:SELECT COUNT(*) FROM student;COUNT(原创 2015-05-17 22:55:08 · 55832 阅读 · 2 评论 -
MYSQL查询优化:profile功能
这里还需要注意一点就是,需要安装profile模块才能实现。1、不过版本要在5.0.37之后。(SHOW PROFILES and SHOW PROFILE were added in MySQL 5.0.37.)SELECT @@profiling;来查看是否已经启用profile,如果profilng值为0,可以通过SET profiling = 1;原创 2015-05-17 22:35:35 · 22458 阅读 · 0 评论 -
MySQL索引类型一览 让MySQL高效运行起来
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了原创 2015-05-16 13:24:52 · 43527 阅读 · 0 评论 -
MySQL索引和优化查询
恰当的索引可以加快查询速度,可以分为四种类型:主键、唯一索引、全文索引、普通索引。主键:唯一且没有null值。create table pk_test(f1 int not null,primary key(f1));alter table customer modify id int not null, add primary key(id);普通索引:允许重复的原创 2015-05-16 13:45:30 · 43596 阅读 · 0 评论 -
MySQL理解索引、添加索引的原则
一,索引的重要性 索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索。 假如你用新华字典来查找“张”这个汉字,不使用目录原创 2015-05-16 13:52:50 · 22506 阅读 · 0 评论 -
理解MySQL——索引与优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),原创 2015-05-16 23:25:58 · 21985 阅读 · 0 评论 -
MySQL性能优化的21个最佳实践 和 mysql使用索引
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。原创 2015-05-17 08:16:39 · 2006 阅读 · 1 评论 -
MySQL索引类型 normal, unique, full text
问题1:mysql索引类型normal,unique,full text的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefull textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 I原创 2014-10-28 08:52:01 · 27111 阅读 · 0 评论 -
MySQL索引的类型和优缺点
现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。注:[1]索引不是万能的!索引原创 2014-10-28 08:49:03 · 27214 阅读 · 0 评论 -
查看MySQL索引
mysql> show index from tblname;mysql> show keys from tblname;· Table表的名称。· Non_unique如果索引不能包括重复词,则为0。如果可以,则为1。· Key_name索引的名称。· Seq_in_index索引中的列序列号,从1开始。· Colu原创 2015-05-17 14:12:18 · 22385 阅读 · 1 评论 -
MySQL查询索引的正确使用
索引是提高查询速度的最重要的工具。当然还有其它的一些技术可供使用,但是一般来说引起最大性能差异的都是索引的正确使用。在MySQL邮件列表中,人们经常询问那些让查询运行得更快的方法。在大多数情况下,我们应该怀疑数据表上有没有索引,并且通常在添加索引之后立即解决了问题。当然,并不总是这样简单就可以解决问题的,因为优化技术本来就并非总是简单的。然而,如果没有使用索引,在很多情况下,你试图使用其它的方法来原创 2015-05-17 14:32:12 · 24985 阅读 · 0 评论 -
MySQL索引及高级用法
所有MySQL列类型可以被索引。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。索引的存储类型目前只有两种(btree和hash),具体和存储引擎模式相关:MyISAM btreeInnoDB btreeMEMORY/Heap hash,btree原创 2015-05-16 14:16:38 · 23203 阅读 · 0 评论 -
MySQL sql-mode
http://www.cnblogs.com/ainiaa/archive/2010/12/31/1923002.html最近在做一个项目的时候错了一个相当奇怪的问题:代码是我从svn上直接checkout出来的,数据库是从别人的机器上直接dump出来的。环境配置妥当以后,就是在我的机器上不能正常下订单。刚开始不明白,为什么同样的代码,同样的数据库在别人的机器上可以正常转载 2017-06-26 21:17:55 · 698 阅读 · 0 评论