![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 74
xiaoqi030611a
这个作者很懒,什么都没留下…
展开
-
sql2000海量数据库的查询优化及分页算法
探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] ( --TGongwen是红头文件表名 [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键转载 2012-07-21 16:58:59 · 1748 阅读 · 0 评论 -
MySql中join操作
join的实现是采用Nested Loop Join算法,就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果有多个join,则将前面的结果集作为循环数据,再一次作为循环条件到后一个表中查询数据。具体例子可以看这里下面的例子演示了在使用join的时候,mysql利用join buffer。[s转载 2013-12-07 17:53:08 · 446 阅读 · 0 评论 -
MySql的内存使用
mysql的配置参数中,有的是指明全局的内存使用大小,有的是配置单个线程的内存大小。在mysql优化几点注意中我们提到了几个全局内存使用的参数和一个bulk_insert_buffer_size线程级配置的参数。下面补充学习一下这些参数。------------------------------全局内存使用---------------------------quer转载 2013-12-07 17:33:10 · 504 阅读 · 0 评论 -
MySQL GROUP BY 操作的优化
MySQL GROUP BY 操作的优化默认情况下, MySQL 在执行 GROUP BY col1 , col2.... 操作的时候,会按照 GROUP BY 字段的顺序进行排序。如果显式包括一个包含相同的列的 ORDER BY 子句,则对 MySQL 的实际执行性能没有什么额外的影响。如果查询包括 GROUP BY 操作, 但是不需要对结果进行排序,或者对默认的排序结果不满意,希望转载 2013-12-08 13:54:35 · 976 阅读 · 0 评论 -
MySQL如何优化LIMIT
在一些情况中,当你使用LIMIT row_count而不使用HAVING时,MySQL将以不同方式处理查询。· 如果你用LIMIT只选择一些行,当MySQL选择做完整的表扫描时,它将在一些情况下使用索引。· 如果你使用LIMIT row_count与ORDER BY,MySQL一旦找到了排序结果的第一个row_count行,将结束排序而不是排序整个表。如果使原创 2013-12-08 14:03:46 · 559 阅读 · 0 评论 -
INSERT语句的速度
插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:连接:(3)发送查询给服务器:(2)分析查询:(2)插入记录:(1x记录大小)插入索引:(1x索引)关闭:(1)这不考虑打开表的初始开销,每个并发运行的查询打开。表的大小以logN (B树)的速度减慢索引的插入。加快插入的一些方法:· 如果同时从同一个客户端插入很多行,使用含多个VALUE的INS原创 2013-12-08 14:21:31 · 527 阅读 · 0 评论 -
FLUSH TABLES WITH READ LOCK
1.FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。 解锁的语句也是unlock tables。 2.LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] W转载 2013-12-03 14:29:47 · 523 阅读 · 0 评论 -
pymongo的group操作
mongodb的group操作是将某个键值作为map的分组依据,然后每个分组的数据再通过reduce函数依次处理。其实group操作就是mapreduce的一个子集。下面是函数原型:group(key, condition, initial, reduce, finalize=None)key是需要分组的键,可以是listcondition是转载 2013-12-29 22:45:46 · 2769 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I转载 2014-01-02 19:24:40 · 366 阅读 · 0 评论 -
MySql:查询缓存机制
对于很多的数据库系统都能够缓存执行计划,对于完全相同的sql, 可以使用已经已经存在的执行计划,从而跳过解析和生成执行计划的过程。MYSQL以及Oracle提供了更为高级的查询结果缓存功能,对于完全相同的SQL (字符串完全相同且大小写敏感) 可以执行返回查询结果。本文主要介绍MYSQL 查询缓存的一些特性,Oracle query cache可以参考http://www.oracle.com/t转载 2014-01-04 19:16:37 · 584 阅读 · 0 评论 -
十步完全理解SQL
很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言)。我们每天都在写 SQL 并且应用在开源软件 jOOQ 中。于是我想把 SQL 之美介绍给那些仍然对它头疼不已的朋友,所以本文是为了以下读者而特地编写的:1、 在工作中会用到 SQL转载 2014-01-16 11:36:08 · 588 阅读 · 0 评论 -
MySQL连接资源占用与状态分析(v1)
1 怎么查看连接信息MySQL一个连接就是线程。查看连接状态:mysql> show status;Threads_cached | 0 || Threads_connected | 1 | //正在连接的连接数| Threads_created | 3转载 2013-12-03 15:02:48 · 1759 阅读 · 0 评论 -
MySql中explain的时候出现using filesort,优化之
在使用order by关键字的时候,如果待排序的内容不能由所使用的索引直接完成排序的话,那么mysql有可能就要进行文件排序。【这个 filesort 并不是说通过磁盘文件进行排序,而只是告诉我们进行了一个排序操作而已】。当然,using filesort不一定引起mysql的性能问题。但是如果查询次数非常多,那么每次在mysql中进行排序,还是会有影响的。此时,可以进行的优化转载 2013-12-07 17:52:36 · 903 阅读 · 0 评论 -
mysql profile使用
mysql的sql语句优化都使用explain,但是这个没有办法知道详细的Memory/CPU等使用量MySQL Query Profiler, 可以查询到此 SQL 语句会执行多少, 并看出 CPU/Memory 使用量, 执行过程 System lock, Table lock 花多少时间等等. mysql> show variables like 'profiling%';转载 2013-11-30 13:28:21 · 383 阅读 · 0 评论 -
Mysql中乱码问题的终极解决方案
mysql中的乱码问题总是在编程的时候让人很烦,它支持几十种编码方式,但由于默认的编码方式为latin1(一种西方的编码方式)对中文支持不太好,因此如果在使用mysql时会用到中文,但您又没进行合理的编码设置则会带来乱码的问题。下面我们就简单来说一下怎么解决mysql中的乱码问题。 1.从控制台改:改成UTF-8编码(注意Mysql中UTF-8写为utf8)修改已存在的dat转载 2012-07-25 20:54:53 · 421 阅读 · 0 评论 -
浅谈MySQL索引背后的数据结构及算法
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为四个部分转载 2012-09-28 22:55:53 · 314 阅读 · 0 评论 -
mysql批量更新
最近有用到mysql批量更新,使用最原始的批量update发现性能很差,将网上看到的总结一下一共有以下三种办法:1.批量update,一条记录update一次,性能很差update test_tbl set dr='2' where id=1;2.replace into 或者insert into ...on duplicate key updatereplace转载 2013-06-12 16:48:47 · 1063 阅读 · 0 评论 -
mysql判断某一张表是否存在
有四种方式进行判断:1. SHOW TABLES LIKE '%tb_bp_d_case%';2. select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA='dbname' and TABLE_NAME='tablename' ;3. 如果表不存在就建立这个表,那么可以直接用 create table原创 2013-06-16 11:03:14 · 17680 阅读 · 2 评论 -
MySQL DELETE语句和TRUNCATE TABLE语句的区别
TRUNCATE TABLE 删除所有数据,但保留表结构,速度非常快。和drop table差不多MySQL DELETE语句和TRUNCATE TABLE语句功能相似,但是二者究竟有何区别呢?下文就将为您分析MySQL DELETE语句和TRUNCATE TABLE语句的区别,供您参考。在MySQL中有两种方法可以删除数据,一种是MySQL DELETE语句,另一种是MySQ转载 2013-06-30 16:51:46 · 606 阅读 · 0 评论 -
从文件中把数据插入到数据库中
LOAD DATA local INFILE '/home/work/test/data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' db_conn = MySQLdb.connect(host=self.db_host,转载 2013-06-30 17:44:08 · 805 阅读 · 0 评论 -
mysqldump参数详细说明
Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数参数说明--all-databases , -A导出全部数据库。mysqldump -uroot -p --all-databases--all-tablespaces , -Y导出全部表空间。mysqldump -uroot -p --all-d转载 2013-07-24 18:54:22 · 784 阅读 · 0 评论 -
mysql导入导出数据方法
一、mysql导入文件或数据或执行相关SQLmysql -h主机地址 -u用户名 -p用户密码1. 文件形式。(shell命令行)1mysql -u root -p dbname 2. 直接放在命令行(shell命令行)执行一个sql1my转载 2013-08-17 17:31:45 · 543 阅读 · 0 评论 -
mysql load 用法
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [OPTIONALLY] ENCLOSED BY ''] [ESCAPED B转载 2013-10-16 23:05:53 · 569 阅读 · 0 评论 -
详解MySQL中EXPLAIN解释命令
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了:如:explain select surname,first_name form a,b where a.id=b.id EXPLAIN列的解释:table:显示这一行的数据是关于哪张转载 2013-11-30 13:35:24 · 374 阅读 · 0 评论 -
Redis源码剖析
源码文件简介 文件功能备注adlist.h/adlist.c双向链表 ae.h/ae.c事件驱动 ae_epoll.cepoll接口,Linux下的IO接口原创 2014-06-29 15:38:12 · 1616 阅读 · 0 评论