数据库历程
文章平均质量分 61
HermanLiu
这个作者很懒,什么都没留下…
展开
-
Mysql用户与权限管理
<br />========对于ROOT用户的密码操作(更改用户密码)========刚刚安装完的Mysql,只一有个root用户,密码为空,而且只能在本机登录! 为root加上密码xxx123:<br />./bin/mysqladmin -u root password xxx123<br />或写成<br />./bin/mysqladmin -uroot password xxx123 加下密码之后,在本进行进入mysql:<br />./bin/mysql -uroot -p<br />更改roo原创 2010-09-18 15:52:00 · 530 阅读 · 0 评论 -
mysql中OPTIMIZE TABLE的作用
<br /><br />当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删 除操作后在数据文件中留下碎片所致。Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作。您只要在做完批量删除,或定期(如 每一两个月)进行一次数据表优化操作即可。<br />OPTIMIZE TABLE通过制作原来的表的一个临时副本来工作<br />OPTIMIZE TABLE语法OPTIMIZE [LOCAL | NO_WRITE_原创 2010-09-27 10:26:00 · 1128 阅读 · 0 评论 -
MyISAM和InnoDB的索引在实现上的不同
<br />1 MyISAM只把索引载入内存,数据缓存依赖于操作系统,InnoDB把索引和数据都载入内存缓冲 <br /><br />2 MyISAM数据库中的数据是按照插入的顺序保存,在每个索引节点中保存对应的数据行的地址,理论上说主键索引和其他索引是一样的,InnoDB数据库中的数据和主键节点保存在一起,所有其他索引节点中保存的是主键索引的值。 <br /><br />3 对于字符串索引,MyISAM默认采用增量保存,例如第一个索引值是'perform',第二个索引的值是'performance', 在原创 2010-09-27 12:02:00 · 6263 阅读 · 0 评论 -
Innodb 索引结构了解
<br />Innodb 作为 MySQL 中使用最为广泛的 事务型存储引擎,不仅在事务实现数据版本控制方面和其他存储引擎有一定的区别,其数据结构也是以非常有特点的方式存储的。<br />每个Innodb表的数据其实可以说就是以一个树型(B-Tree)结构存储的,表的数据和主键(Primary Key)共同组成了一个索引结构,也就是我们常说的Innodb的Clustered Primary Key。在这个Clustered Primary Key中,Leaf Nodes其实就是实际的表记录,我们常规理解上的原创 2010-09-27 12:04:00 · 1136 阅读 · 0 评论 -
共享锁和排他锁的异同
<br />共享锁(S锁):<br />如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 <br />排他锁(X锁):<br />如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 <br />简要说明为什么会发生死锁?解决死锁的主要方法是什么? <br />若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁 <br />解决死锁的方法应从预防和解除的两个方面着手原创 2010-10-08 16:26:00 · 3203 阅读 · 0 评论 -
MySQL的btree索引和hash索引的区别
<br /> Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 <br />可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也原创 2010-10-09 10:26:00 · 650 阅读 · 0 评论 -
数据库 schema 与 catalog 简介
<br />按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例原创 2010-10-29 18:21:00 · 3779 阅读 · 0 评论 -
MySQL下,text 、blob的比较
MySQL存在text和blob:<br />(1)相同在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。使用严格SQL模式,会产生错误,并且值将被拒绝而不是截取并给出警告.BLOB和TEXT列不能有 默认值.当保存或检索BLOB和TEXT列的值时不删除尾部空格。(这与VARBINARY和VARCHAR列相同).对于BLOB和TEXT列的索引,必须指原创 2011-01-04 16:57:00 · 42854 阅读 · 6 评论 -
数据模型
数据模型什么是数据模型? 访问数据库中数据的方式取决于此数据库所采用的数据模型。数据模型 影响着 客户端处理数据所能使用的操作 以及 可以使用的API。不同的数据模型都或多或少的提供了一些原始功能。通常,数据模型提供越少的功能,那么客户端应用程序就必须做更多的事。 数据模型决定了 在数据存储时客户端编码数据的方式。应用程序 将有一些自然模型 能够映射到 存储技术支持的事情。 直翻译 2012-03-11 10:14:59 · 3880 阅读 · 0 评论 -
MySQL中MyISAM引擎与InnoDB引擎性能简单测试
<br />[硬件配置]<br />CPU : AMD2500+ (1.8G)<br />内存: 1G/现代<br />硬盘: 80G/IDE<br /><br />[软件配置]<br />OS : Windows XP SP2<br />SE : PHP5.2.1<br />DB : MySQL5.0.37<br />Web: IIS6<br /><br /><br />[MySQL表结构]<br /><br />CREATE TABLE `myisam` (<br /> `id` int(11) N原创 2010-09-27 13:55:00 · 628 阅读 · 1 评论 -
MySQL: InnoDB 还是 MyISAM?
<br />MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。<br />下面先让我们回答一些问题:你的数据库有外键吗? 你需要事务支持吗? 你需要全文索引吗? 你经常使用什么样的查询模式? 你的数据有多大?<br /> <br />思考上面这些问题可以让你找到合适的方向,但那并不是绝对的。如果你需要事务处理或是外键,那么Inn原创 2010-09-21 21:47:00 · 855 阅读 · 0 评论 -
mysql:LOAD DATA INFIL
<br />LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;<br /> 简单的讲,这样将会把文件data.sql中的内容导入到表Orders中,如mysqlimport工具一样,这个命令也有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中,您可以使用下面的命令:<br /> LOAD DATA LOCAL INFILE "C:/MyDocs/SQL.txt" INTO TABLE Orders;<br /原创 2010-09-21 13:00:00 · 1233 阅读 · 0 评论 -
MySQL外键和参照完整性的实现步骤
<br />我们大家都知道MySQL参照完整性一般是通过MySQL外键(foreign key)的具体使用而随之应用。总的来说,流行工具开源 RDBMS MySQL(与PHP搭配之最佳组合)并不支持外键,原因是这种支持将会降低RDBMS的速度和性能。<br />然而,由于很多用户对参照完整性的优点倍感兴趣,最近MySQL()的不同版本都通过新InnoDB列表引擎支持外键。由此,在数据库组成的列表中保持参照完整性将变得非常简单。<br />为了建立两个MySQL()表之间的一个MySQL外键关系,必须满足以下原创 2010-09-19 10:29:00 · 3408 阅读 · 0 评论 -
MYSQL中EXPLAIN的说明
<br /> mysql> explain select count(id) from t_prehandle_zhigao_05 as zhigao where start_time > '2008-05-30';<br />+----+-------------+--------+-------+---------------+------------+---------+------+---------+--------------------------+<br />| id | select_ty原创 2010-09-18 15:52:00 · 464 阅读 · 0 评论 -
mysql中rollup和limit的用法及where子句的优化
<br />mysql中rollup和limit的用法及where子句的优化<br />1. 使用ROLLUP的分组<br />比如说某公司某个月每个营业员的销售额 sell表,其结构如下:<br />create table sell<br />(<br />sale_id int auto_increment, <br />sale_name varchar(10),<br />sale decimal(8,2),<br />primary key(sale_id)<br />);<br />Inser原创 2010-09-18 12:14:00 · 1051 阅读 · 0 评论 -
MYSQL DELETE语法的实际操作与代码
<br />以下的文章主要介绍的是MYSQL DELETE语法的实际操作步骤以及对MYSQL DELETE语法的实际应用代码的描述,以下就是对其具体内容描述,希望会给你带来一些帮助在学习此语法方面。<br />单表语法:<br /> DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] <br /> <br />多表语法:<br />原创 2010-09-18 12:22:00 · 754 阅读 · 0 评论 -
MySQL InnoDB/MYISAM/MERGE/BDB/HEAP的区别
<br />官方准确解释<br /><br /><br />·MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。<br /><br />·InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。<br /><br />·BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。<br /><br />·Mem原创 2010-09-21 21:45:00 · 1593 阅读 · 0 评论 -
关于MySQL事务处理
<br />START TRANSACTION, COMMIT和ROLLBACK语法<br /><br />START TRANSACTION | BEGIN [WORK]<br />COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]<br />ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]<br />SET AUTOCOMMIT = {0 | 1}<br /><br /><br />START TRANSACTION或原创 2010-09-22 10:40:00 · 1173 阅读 · 0 评论 -
事务隔离级别
<br />问题的提出 :数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况。 <br /> ● 更新丢失(Lost update):两个事务都同时更新一行数据,但是第二个事务却中途失败退出,导致对数据的两个修改都失效了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。 <br /> ● 脏读(Dirty Reads):一个事务开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够及时提交。这是相当危险的,因为很可能所有的操作都被回滚。 <br原创 2010-09-22 10:45:00 · 525 阅读 · 0 评论 -
mysql 索引 详解
<br />索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。<br /> <br />注:<br /> <br />[1]索引不是万能的!<br /> <br />索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个 DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷原创 2010-09-23 09:30:00 · 968 阅读 · 0 评论 -
mysql_store_result()与mysql_use_result()的比较
函数mysql_store_result()与mysql_use_result()类似,它们都有连接处理程序参数,并返回结果集。但实际上两者间的区别还是很大的。两个函数之间首要的区别在于从服务器上检索结果集的行。当调用时,mysql_store_result()立即检索所有的行,而 mysql_use_result()启动查询,但实际上并未获取任何行,mysql_store_result()假设随转载 2012-07-12 23:08:23 · 3542 阅读 · 0 评论