
SQL
sforiz
Opportunity to be prepared in favor of the people!
展开
-
数据库中主键和外键的设计原则
主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。 必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。主键: 关系数据库依赖于主键---它是数据库物理模式转载 2010-02-05 11:32:00 · 615 阅读 · 0 评论 -
MySQL的information_schema数据库是什么,有什么作用
大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章后,你就会对inform转载 2011-08-01 16:21:38 · 1364 阅读 · 0 评论 -
关于SQL Server系统数据库详解
介绍这里我们介绍SQL Sever内部的系统数据库的作用和用户数据库之间联系,关于SQL Sever如何管理用户数据库的原理,对于每个数据库开发人员和DBA都是必须掌握的。SQL Sever系统数据库是用来存储系统级的数据和元数据。SQL Sever包含了6个系统数据转载 2011-08-09 09:44:44 · 2261 阅读 · 0 评论 -
Mysql Innodb死锁情况分析与归纳
案例描述在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志。两个sql语句如下:(1)insert into backup_table select * from source_table(2)DELETE FROM source_table WHERE Id>5 AND titleWeight<32768转载 2011-12-04 11:54:05 · 4305 阅读 · 0 评论 -
mysql replication
MYSQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将 更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功 更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。在实际项目中,两台分布于异地的主机上安装 有转载 2012-05-04 10:50:48 · 1370 阅读 · 0 评论 -
MySQL数据库恢复(使用mysqlbinlog命令)
1:开启binlog日志记录 修改mysql配置文件mysql.ini,在[mysqld]节点下添加 # log-bin log-bin = E:/log/logbin.log 路径中不要包含中文和空格。重启mysql服务。通过命令行停止和启动mysql服务 c:\>net stop mysql; c:\>net start mysql; 进入命令行进入mysql并查看转载 2012-09-06 16:50:09 · 594 阅读 · 0 评论 -
主主循环同步配置
1 授权用户(1)A服务器:mysql> grant replication slave,file on *.* to 'backup1'@'192.168.1.12' identified by '123456';Query OK, 0 rows affected (0.00 sec) (2)B服务器:mysql> grant replication slave,fi转载 2012-11-30 09:47:10 · 568 阅读 · 0 评论 -
Mysql Explain 详解
Mysql Explain 详解一.语法explain 例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+-------+------+转载 2013-09-02 10:54:49 · 729 阅读 · 0 评论 -
mysql分表的3种方法
一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时转载 2013-09-02 16:00:54 · 1078 阅读 · 0 评论 -
Visual Representation of SQL Joins
IntroductionThis is just a simple article visually explaining SQL JOINs.BackgroundI'm a pretty visual person. Things seem to make more sense as a picture. I looked all over the Internet for a go转载 2013-09-28 12:01:06 · 856 阅读 · 0 评论 -
一千行MySQL学习笔记
/* 启动MySQL */net start mysql/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()update mysql.user set password=password('root'转载 2014-07-24 12:47:14 · 4188 阅读 · 1 评论 -
推荐15个有价值的MySQL教程网站
MySQL是目前最为流行的开源数据库管理系统,它强健、响应速度快,深受广大用户青睐。MySQL采用C和C++语言编写,通常和PHP一起来开发动态的服务器端的应用程序。MySQL支持多种编程语言,比如PHP、PERL、C、C++以及Java,所以受开发人员的青睐,MySQL还支持存储过程、触发器、游标等等。MySQL最重要的一点是:开源。因此在这里推荐一些有价值的MySQL资源和教程,无论对转载 2014-08-26 09:18:35 · 1303 阅读 · 0 评论 -
MySQL压力测试工具
<br />第一、mysqlslap<br />mysqlslap是一个mysql官方提供的压力测试工具。以下是比较重要的参数:<br />–defaults-file,配置文件存放位置<br />–concurrency,并发数<br />–engines,引擎<br />–iterations,迭代的实验次数<br />–socket,socket文件位置<br />自动测试:<br />–auto-generate-sql,自动产生测试SQL<br />–auto-generate-sql-load-转载 2011-06-01 14:00:00 · 3393 阅读 · 1 评论 -
错误代码是Error 191
<br />错误代码是Error 191——又是一个没有标准上限的错误——由下面的查询语句触发。SELECT DISTINCT COUNT(Task.RecId) FROM Task WHERE (Task.TaskType = @P514) AND (Task.Status = @P1) AND (Task.RecId is not null) AND ((((((((((((((((((((((((((((((((((((((((((((((((((((转载 2010-09-16 13:15:00 · 2940 阅读 · 0 评论 -
外键级联删除
--建立数据库create database test;go--建立表customerscreate table customers(id int identity(1,1) not null,name varchar(15),age int,primary key(id));go--建立表orderscreate table orders(id转载 2010-02-05 11:38:00 · 9526 阅读 · 0 评论 -
MySQL 外键使用
外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和cha转载 2010-03-02 19:31:00 · 601 阅读 · 0 评论 -
MySQL count(*) 与 count(col) 查询效率比较
MySQL count(*) 与 count(col) 查询效率比较优化总结:1.任何情况下SELECT COUNT(*) FROM xxx 是最优选择;2.尽量减少SELECT COUNT(*) FROM xxx WHERE COL = ‘xxx’ 这种查询;3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL = ‘xxx’转载 2010-03-04 15:16:00 · 1247 阅读 · 0 评论 -
select sql 语句执行过程 顺序
(8) SELECT (9) DISTINCT (11) TOP_specification> select_list>(1) FROM left_table>(3) join_type> JOIN right_table>(2) ON join_coditi转载 2010-03-04 11:45:00 · 761 阅读 · 0 评论 -
存储引擎分析
什么是MyISAM? MyISAM是MySQL关系数据库管理系统的默认储存引擎。它从旧的ISAM代码扩展出许多有用的功能。在新版本的MySQL中,InnoDB引擎由于其对事务,参照完整性,以及更高的并发性等优点开始广泛的取代MyISAM。每一个MyISAM表都对应于硬盘上的三个文件。这三个文件有一样的文件名,但是有不同的扩展名以指示其类型用途:.frm文件保存表的定义转载 2010-03-04 14:40:00 · 641 阅读 · 0 评论 -
sql 程序语句
Transact-SQL 语言使用的流程控制命令与常见的程序设计语言类似主要有以下几种控制命令。4.6.1 IF…ELSE其语法如下:IF [ELSE [条件表达式]]其中可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条件成立时执行某段程序,条件不成立时转载 2010-03-04 12:15:00 · 923 阅读 · 0 评论 -
要提高SQL查询效率where语句条件的先后次序应如何写
我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就转载 2010-03-04 12:17:00 · 51177 阅读 · 3 评论 -
SQL与过程化程序设计语言
SQL与过程化程序设计语言 SQL是一种典型的非过程化程序设计语言,这种语言的特点是:只指定哪些数据被操纵,至于对这些数据要执行哪些操作,以及这些操作是如何执行的,则未被指定。非过程化程序设计语言的优点在于它的简单易学,因此已经成为关系数据库访问和操纵数据的标准语言。 与之相对应的是过程化程序设计语言,我们转载 2010-03-04 12:27:00 · 3705 阅读 · 0 评论 -
MysqlDump
导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。 注意,如果你运行mysqldump没有--quick或--opt选项,mysqld转载 2010-04-18 20:52:00 · 614 阅读 · 0 评论 -
MySQL客户端命令行应用技巧
1.实现TAB键补全SHELL>vi /etc/my.cnf[mysql]#no-auto-rehashauto-rehashSHELL>reboot mysqldnote: 1.要先use到某个数据库下;2.要补全的关键字需要大写。2.prompt让操作更加清楚mysql>prompt /u@/h(/d) /r:/m:/s (临时)[mysql] (长久)prompt=//u@//h3转载 2010-04-19 12:15:00 · 762 阅读 · 0 评论 -
备份MySQL需要知道的十件事
你使用过别人的<span class="t_tag" onclick="function onclick(){tagshow(event)}">备份<span class="t_tag" onclick="function onclick(){tagshow(event)}">方案来备份你的<span class="t_tag" onclick="function oncl转载 2010-04-19 12:12:00 · 532 阅读 · 0 评论 -
InnoDB和MyISAM的差别
InnoDB和MyISAM是在使用<span class="t_tag" onclick="function onclick(){tagshow(event)}">MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是<span class="t_tag" onclick="转载 2010-04-19 13:03:00 · 421 阅读 · 0 评论 -
MySQL备份、还原
还原一个数据库:mysql -h localhost -u root -p123456 www备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:/www2008-2-26.sql //以下是在程序中进行测试 //$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbp转载 2010-05-15 20:39:00 · 598 阅读 · 0 评论 -
Delphi format的用法
一、Format函数的用法Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的转载 2010-05-16 22:41:00 · 862 阅读 · 0 评论 -
mysql 查询优化 mysql query
<br /><br /> <br /> 本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法。<br /> 1、选取最适用的字段属性<br /> MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(转载 2010-08-20 00:18:00 · 739 阅读 · 0 评论 -
MySQL中select * for update锁表的问题
<br />由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。<br /><br />举个例子: <br />假设有个表单products ,里面有id跟name二个栏位,id是主键。 <br />例1: (明确指定主键,并且有此笔资料,row lock) <br />SELECT * FROM products WHERE id转载 2010-08-24 14:30:00 · 1392 阅读 · 0 评论