数据库
沙滩上的前浪
这个作者很懒,什么都没留下…
展开
-
【转载】几种数据存储方式的特点比较
存储方法描述常见用例优点缺点数据库体积主要产品关系型数据库.行存储数据结构化或存储在行中。在事务处理、交互式事务的应用程序中使用。稳健的、 经验证的技术来捕获中途事务。扩展性和巨大的数据查询处理时间。几GB到TBSybase、Oracle、MySQL、DB2关系型数据库.列存储数据垂直分割并存储在列中。历史数据分析、 数据仓库和商务智能。更快地对大型数据查询 (专门特设查询)。不适合事务、 导入导原创 2015-03-20 15:11:39 · 3785 阅读 · 0 评论 -
【转载】理解MySQL——索引与优化
转载自:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取1原创 2015-03-20 15:13:41 · 475 阅读 · 0 评论 -
如何使用SQL向mysql中插入一个特定UNICODE码值的字符
这个字符无法通过输入法等方法输入,甚至可能根本无法在你的系统上正确显示,或者它压根就是一个不可见字符。那么如何把这样一个字符插入到数据库(数据库该字段的编码已经指定为utf8)呢?一种方法是借助编程语言。python、java、objective-c等编程语言都提供了使用code point来表达一个UNICODE字符的方法。这里我们以希腊字母β来举例。这个字符的UNICODE code poin原创 2015-03-20 15:13:27 · 6775 阅读 · 1 评论 -
mysql中的utf8字符集与标准UTF-8的区别
尽管字面上非常相似,但mysql的utf-8的覆盖范围仅仅是所有UTF-8字符集的一部分。这非常容易误导初学者。UTF-8是UCS字符集的一种编码方式,可能将一个字符编码为1个字节,2个字节,3个字节,或者4个字节。编码为1个字节的字符就是ASCII码(有时称为latin文字符号),包含了拉丁语言中使用的符号,如拉丁字母、数字、标点等。编码为2个字节的字符包括了欧洲和中东地区语言(如希腊语、希伯来原创 2015-03-20 15:13:19 · 4002 阅读 · 0 评论 -
mysql中update一张表多列时的次序问题
mysql有一个不符合SQL标准的地方需注意。在mysql中,如果在一个update语句中更改了多列的值,这些更改是有次序的,改完了第一列再改第二列,改完第二列再改第三列,依此类推。SQL标准的要求是更改不依赖于次序,所有更改都使用右端表达式在这条update语句之前的值,不会使用update语句执行过程中的值。mysql文档提供的一个例子是:UPDATE t1 SET col1 = col1 +原创 2015-03-20 15:13:16 · 706 阅读 · 0 评论 -
如何在MySQL的SQL语句中避免数据唯一性冲突
MySQL在修改完每一行数据后都验证数据约束,而不是像SQL标准里执行完整条语句才验证。这样做带来的一个问题就是,如果一条SQL语句会改动多行数据,即使改动过程中违反了数据约束但改动后并不违反数据约束,也会被MySQ判为违反数据约束从而执行失败。举例来说:create table t (i int not null primary key);insert into t(i) values (1)原创 2015-03-20 15:13:13 · 2106 阅读 · 0 评论 -
【转载】MySQL 加锁处理分析
MySQL 加锁处理分析十二 13th, 2013转载自:何登成的技术博客http://hedengcheng.com/?p=771 背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主原创 2015-03-20 15:13:04 · 456 阅读 · 0 评论 -
【转载】数据库水平切分的实现原理解析
这篇文章很不错。对数据库水平扩展技术的前因后果讲解得比较透。转载来与大家分享(原始出处我已经找不到了,应该是来自于阿里的同学们)。------------------------------------------1 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极原创 2015-03-20 15:12:58 · 392 阅读 · 0 评论 -
【转载】使用Memcache缓存MySQL查询
实际应用中,尤其是在大规模访问的Web项目中,Memcache作为一种优秀的缓存解决方案,被广泛使用。其灵活性和可扩展性受到了广大开发者的青睐。为了提高响应速度,使用Memcache来减少数据查询运算是一种不错的选择。 关于Memcache的安装和配置,网上有很多资料,这里就不再赘述。本文以笔者在实际项目中的应用为例,来说明如何使用Memcache缓存MySQL数据,从而达到高效数据响应原创 2015-03-20 15:12:54 · 1296 阅读 · 0 评论 -
删除MySQL中的匿名用户
今天使用MySQL的时候遇到一个问题,建了一个登录地点任意的用户却无法在本地登录。后来才发现是受系统初始化数据时生成的匿名用户的影响。这个匿名用户的存在不但有安全风险,还影响正常使用,建议尽快删除。问题出现的具体过程是这样的:创建一个新用户,不限制登录地点:CREATE USER 'xindong' IDENTIFIED BY 'xindong';向这个用户授权,可以无限制使用数据库:GRANT原创 2015-03-20 15:12:40 · 708 阅读 · 0 评论 -
关系数据库中主键与唯一索引的区别
两者在可空、唯一性、排序等表面特征上并没有什么区别,而且主键都有唯一索引,所以常被人问起它们之间有什么区别。简要地说,主键和唯一索引,或者键和索引之间的最主要区别在于:键是一个逻辑层面的概念,涉及到数据模式的设计。从语法角度看,键被定义为一种约束。比方说,如果想定义外键(或称参考约束),那么相关列就必须先定义为“键”。键在实现上一般都会有自己的索引(主键则是有唯一索引),这个索引可能是用户显式定义原创 2015-03-20 15:12:23 · 2735 阅读 · 0 评论 -
如何重置MySQL数据库管理员(root)密码
经常有同事忘记了root用户密码。这里把Linux上的重置步骤描述一下:1)停止mysqld进程查看mysqld的进程信息。如:# ps -ef | grep -i mysqlroot 7631 1 0 11:39 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file原创 2015-03-20 15:12:06 · 868 阅读 · 0 评论 -
MySQL中的字符集
MySQ可以在四个层级上指定数据的字符集:系统级,库级,表级,列级。在后两个层级上指定字符集是MySQL对标准SQL的特有扩展。系统级设置可以通过启动参数文件或命令行参数(character-set-server)指定,如果不指定则使用latin1(注意,不是根据os的语言设置自动选择,而是latin1)。可以在运行时动态修改。库级设置在创建数据库(create database)时指定,如果不指原创 2015-03-20 15:12:03 · 314 阅读 · 0 评论 -
MySQL中的奇特之处:数据类型
初用MySQL,发现一些和Oracle等数据库不一样的地方,写下来方便查阅参考。1. 整数数据类型表达范围从小到大依次为tinyint,smallint,mediumint,int,bigint,占用的存储字节数分别为1,2,3,4,8。类型后面可以在括号中标注显示宽度,例如int(5),其中5就是显示宽度,表示该数据在显示时应该使用5个十进制数字。显示宽度只适用于应用程序。它的取值不影响DBMS原创 2015-03-20 15:11:59 · 525 阅读 · 0 评论 -
MySQL Replication 搭建步骤(InnoDB)
一个快速配置步骤:1) master端:启用binary logging,设置唯一的server ID(需重启) 例,修改my.cnf为:[mysqld] log-bin=mysql-binserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=12) slave端:设置唯一的server ID(需重启) 例,修改my.cnf为:[mysqld原创 2015-03-20 15:11:53 · 435 阅读 · 0 评论 -
外键缺乏索引导致的Oracle数据库死锁
与MySQL不同,Oracle不会在子表上为外键列自动创建索引。外键上缺乏索引可能会造成严重的性能问题,甚至于死锁。对于从MySQL迁移至Oracle的数据库应用,应该特别注意这个问题。如果父表存在删除记录或者更改外键列的情形,那么就需要在子表上为外键列创建索引。下面通过一个实例,分析Oracle数据库缺乏外键索引可能造成的后果。具体情况是,在数据库报警日志中发现了死锁情况:Global Enqu原创 2015-03-20 15:11:49 · 2738 阅读 · 0 评论 -
Oracle数据库中的TM锁模式
Oracle数据库支持如下TM锁(表锁)模式:Row Share (RS)This lock, also called a subshare table lock (SS), indicates that the transaction holding the lock on the table has locked rows in the table and intends to update原创 2015-03-20 15:11:45 · 1418 阅读 · 0 评论