
Mysql
文章平均质量分 66
htofly
这个作者很懒,什么都没留下…
展开
-
MySQL索引分析和优化
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。转载 2012-05-30 22:13:43 · 334 阅读 · 0 评论 -
sql解释执行顺序
在查询中逻辑查询和物理查询有着本质的区别,SQL不同于其它编程的最明显的特征就是处理代码的顺序,虽然总是最先写SELECT 但是几乎总在最后执行,那到底是怎么一个执行顺序呢 如下的sql查询语句执行顺序(1)from(3) join(2) on(4) where(5)group by(6) with (7)having(8)转载 2014-04-30 17:31:41 · 565 阅读 · 0 评论 -
mysql常用函数
ascii(char)返回字符的ascii码值bit_length(str)返回字符串的比特长度concat(s1,s2...,sn)将s1,s2...,sn连接成字符串concat_ws(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串in转载 2013-03-21 08:38:35 · 544 阅读 · 0 评论 -
数据库分区分表
一、分区表、分区索引概念 为了满足而非常大的数据库的管理,需要创建和使用分区表和分区索引,分区表允许将数据分成成为分区甚至子分区的更小的、更好管理的块。每个分区可以单独管理,可以不依赖其他分区而单独发挥作用,因此可以提供更有利于可用性和性能的结构。 表或索引可以共享相同的逻辑属性,但是可以有不同的物理属性。例如所有分区/子分区可以共享相同的列和约束,但是可以有不同转载 2013-03-31 22:11:59 · 2324 阅读 · 0 评论 -
mysql变量使用总结
使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: select @VAR:=(select sum(amount) from penalties);我这样改,虽然是可以的。但是,对比的书中的答案,发现这样的方式太蹩脚了。说明没有很好地理解select定义转载 2012-11-06 21:31:16 · 435 阅读 · 0 评论 -
MySQL max_allowed_packet设置及问题
有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。查看目前配置show VARIABLES like '%max_allowed_packet%';显示的结果为:+--------------------+---------+ | Variable_name | Value | +-------------------转载 2012-08-16 10:00:09 · 981 阅读 · 0 评论 -
MySQL中的配置参数interactive_timeout和wait_timeout
(1)interactive_timeout:参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。参数默认值:28800秒(8小时)(2)wait_timeout:参数含义:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或转载 2012-08-16 09:59:06 · 1307 阅读 · 0 评论 -
MySQL的my.ini配置参数详解
1. back_log指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大转载 2012-08-16 10:05:32 · 842 阅读 · 0 评论 -
MySQL中order by的实现 和 by rand() 和优化
几种order by的情况 乍一看这个问题好像有点复杂,我们从最简单的case开始看起。 用这个表来说明:(10w行数据) 1、 最简单的order ―― order by索引字段 从explain的结果来看(Extra列),这个语句并不作排序。因为字段a已经是有顺序的。就是按照索引a的顺序依次读pk的值(在这里是隐藏的系统列),一个个从聚簇索引的转载 2012-08-13 14:43:24 · 688 阅读 · 0 评论 -
使用CASE WHEN进行字符串替换处理
/*02 03mysql> select * from sales;04+-----+------------+--------+--------+--------+------+------------+05转载 2012-08-13 14:39:39 · 4654 阅读 · 0 评论 -
mysql order by case when
SELECT * FROM tablename WHERE id_one=27 OR id_two=27 ORDER BY CASE WHEN id_one=27 THEN timestamp_one END DESC, CASE WHEN id_two=27 THEN timestamp_two END DESC翻译 2012-08-13 14:36:44 · 4396 阅读 · 0 评论 -
mysql数据库引擎
1 MyISAM:这种引擎是mysql最早提供的。这种引擎又可以分为静态MyISAM、动态MyISAM 和压缩MyISAM三种: 静态MyISAM:如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型。因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。当数据受损时,恢复工作也比较容易做。 动态MyISAM:如果数据表中出现v转载 2014-10-14 14:36:16 · 939 阅读 · 0 评论