MYSQL
文章平均质量分 56
rongwenbin
这个作者很懒,什么都没留下…
展开
-
Mysql分库分表方案
Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行转载 2015-09-11 16:39:41 · 680 阅读 · 0 评论 -
MYSQL导入导出.sql文件
MYSQL导入导出.sql文件一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=“;path\mysql\bin;”其中path为MYSQL的安装路径。二.简单的介绍一下命令行进入MYSQL的方法:1.C:\>mysql -h hostname -u username -p按ENTER键,等待然后输入密码。这里hostname为转载 2013-04-12 17:16:51 · 540 阅读 · 0 评论 -
mysql数据库的左连接,右连接,内链接。有何区别
一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。先说左外连接和右外连接:[TEST1@orcl#16-12月-11] SQL>select * from t1; ID NAME---------- -------------------- 1 aaa 2 bbb[TEST1@orcl#16-12月-11] S转载 2013-12-25 15:02:19 · 602 阅读 · 0 评论 -
来谈谈SQL数据库中"简单的"SELECT TOP—可能有你从未注意到的细节
来谈谈SQL数据库中"简单的"SELECT TOP—可能有你从未注意到的细节首先从博客园的Jerome Wong网友说起他提出了一个这样的问题本人写了好几年SQL语句了,从来没注意到这件事情。例如:数据表如下:ID EMPNO NAME AGE 1 26929 Jerome 282 28394 Quince 273 20983转载 2013-12-19 17:33:46 · 736 阅读 · 0 评论 -
★MySQL与事务(转)
欢迎访问火丁笔记:http://huoding.com/火丁的订阅地址:http://huoding.com/feed作者:老王MySQL5.X都已经发布好久了,但是还有很多人认为MySQL是不支持事务处理的,这不得不怪他们是孤陋寡闻的,其实,只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力。这里面,又以InnoDB表类型用的最多,虽然后来发生原创 2013-08-09 17:37:10 · 662 阅读 · 0 评论 -
MySQL存储引擎简介
MySQL存储引擎简介PS:有些描述比较陈旧了,凑合看吧。。。一 存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提 供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使转载 2013-12-17 10:58:16 · 585 阅读 · 0 评论 -
浅谈MySql的存储引擎(表类型)
浅谈MySql的存储引擎(表类型)什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。 我们通常说的MySql数据库,sql server数据库等等其实是数据库管理系统,它们可以存储数据,并提供查询和更新数据库中的数据的功能等等。根据数据库如何存储数据和如何操作数据的实现机制不同,这些数据库转载 2013-12-17 10:30:05 · 451 阅读 · 0 评论 -
Mysql 分区操作简介
Mysql 分区操作简介mysql分区的分区,简单来说是将一个表根据指定的条件,水平切分. 将一张物理表,切为多个物理表,但在数据库表现上还是一张表.这样的好处是, 当查询条件可以判定到某张分区表的时候,会只查询这张分区表,而不用整表扫描.值得注意的是,有外键关联的表不能进行分区. 直到现在这个情况也没有改变. 当前mysql最新版本为5.5.一. 查看数据转载 2013-12-17 09:28:29 · 520 阅读 · 0 评论 -
MYSQL性能优化之分库分表与不停机修改mysql表结构
MYSQL性能优化之分库分表与不停机修改mysql表结构,需要的朋友可以参考下*1、分库分表*很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到me转载 2013-12-16 16:13:34 · 1457 阅读 · 0 评论 -
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器转载 2013-12-16 17:21:33 · 496 阅读 · 0 评论 -
分库分表总结
单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只转载 2013-12-13 18:00:39 · 500 阅读 · 0 评论 -
MYSQL select时锁定记录问题
在使用SQL时,大都会遇到这样的问题,你Update一条记录时,需要通过Select来检索出其值或条件,然后在通过这个值来执行修改操作。但当以上操作放到多线程中并发处理时会出现问题:某线程select了一条记录但还没来得及update时,另一个线程仍然可能会进来select到同一条记录。 一般解决办法就是使用锁和事物的联合机制:如:1. 把select放在事务中, 否则select完成,转载 2013-08-09 17:37:28 · 2695 阅读 · 0 评论 -
mysql怎么给一个表一次增加多个字段?
ALTER TABLE MYTABLE ADD FIELD1 VARCHAR(10),ADD FIELD2 INT,ADD FIELD3 VARCHAR(1);原创 2013-08-09 17:34:56 · 2139 阅读 · 0 评论 -
MySQL事务与锁定命令
6.7 MySQL 事务与锁定命令6.7.1BEGIN/COMMIT/ROLLBACK 句法缺省的,MySQL 运行在 autocommit模式。这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。如果你使用事务安全表 (例如InnoDB、BDB),通过下面的命令,你可以设置 MySQL 为非autocommit 模式:SET AUTOCOMMIT=0转载 2013-08-09 17:37:14 · 543 阅读 · 0 评论 -
SELECT ... FOR UPDATE
该文章有些不对的地方,不过作参考还可以。 MySQL使用SELECT ... FOR UPDATE 做事务写入前的确认以MySQL的InnoDB 为例,预设的Tansaction isolationlevel 为REPEATABLE READ,在SELECT的读取锁定主要分为两种方式:SELECT ... LOCK IN SHAREMODESELECT ... FORUPDATE转载 2013-08-09 17:36:52 · 483 阅读 · 0 评论 -
MySQL 触发器简单实例
MySQL 触发器简单实例~~语法~~CREATE TRIGGER触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.{ BEFORE | AFTER} --触发器有执行的时间设置:可以设置为事件发生前或后。{ INSERT | UPDATE| DELETE } --同样也能设定触发的事件:它们可以转载 2014-01-14 17:45:44 · 499 阅读 · 0 评论 -
mysql:如何合并两个查询的结果集的数据
(新用户)通过表A获取的记录集,如下:1 2012-11-13 2012-11-28 2012-11-5(老用户)通过表B获取的记录集,如下:5 2012-11-13 2012-11-2我想将这两个结果集合并为一个结果集。显示的结果如下:日期 新用户 老用户2012-11-1 1转载 2014-05-29 10:23:23 · 5952 阅读 · 0 评论 -
mysql中orderby和limit同时使用的bug
我想从一个表中检索所有标题含有“中国”的数据,将它们按id排序,取前5条,所以我写了以下语句。SQL语句1:select fi_id, fi_url, fi_titlefrom InfoTablewhere fi_title like '%中国%'order by fi_id desclimit 5当我只使用order by时,能够返回13条结果。只使用li转载 2015-07-24 16:42:02 · 1277 阅读 · 0 评论 -
mysql 创建表字段Double类型长度
mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default '0', > degree double(16,2));double(16,2)原创 2015-07-23 17:49:36 · 84058 阅读 · 2 评论 -
mysql int类型默认值设置为空,结果会自动转成0。
mysql int类型默认值设置为空,结果会自动转成0。建议改成varchar。原创 2015-08-12 10:57:31 · 31419 阅读 · 8 评论 -
mysql find_in_set 用法
昨天在处理一需求时,需要从数据库字段中查出包含了某字符串的数据,第一反应就是能不能用mysql in关键字(MySQL IN 用法),但是最终查询的结果不是自己想要的。最终在谷歌上搜索到可以使用mysql find_in_set 函数来处理,下面介绍一下 find_in_set 的使用方法: 首先,看一下数据库表数据: 复制代码 代码如下:mysql> select转载 2015-06-09 17:10:31 · 652 阅读 · 0 评论 -
mysql查找含有指定字符串的某一串的语句
例如数据库中 name字段对应的值为 lhd,pass字段对应值为 12345。但我给出的的是 lhdss,怎么根据 lhdss 查找数据库name为 lhd 对应的pass呢?select pass from table1 where 'lhdss' like concat(name,"%")转载 2015-04-07 12:10:33 · 2012 阅读 · 0 评论 -
使用mysql_fetch_array()函数判断mysql表单是否为空
使用mysql_fetch_array()函数,可以实现php中没有的判断mysql表单是否为空的功能,下面就将为您详细介绍该方法,供您参考。判断mysql表单是否为空,这个php没有直接的功能,但是我们可以利用mysql_fetch_array()函数的返回值来进行判断mysql表单是否为空。很简单的,给一个例子。方法一:$sql = "select * form abc" $r转载 2015-03-17 17:39:55 · 3648 阅读 · 0 评论 -
PHP+MySQL存储数据出现中文乱码的问题
PHP+MySQL出现中文乱码的原因。1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。2. 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.3. PHP页面的字符集与数据库的编码不一致。4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PH转载 2014-12-25 14:25:11 · 583 阅读 · 0 评论 -
MySQL分表处理的实现方法(按月份分的表)
MySQL分表处理用于处理海量的数据库,下面就为您详细介绍MySQL分表处理的实现方法,希望对您能够有所启迪。面对海量数据的表的时候,我们需要对它进行分表处理,我是按月份分的表,即每月都要建立一张表。比如 table_2010_04,table_2010_05,table_2010_06......您可以根据自己的需要,可以根据时间和不同的字段以及类型来分表。我按月分表是因为我只需要查询每转载 2014-10-21 11:10:32 · 19575 阅读 · 1 评论 -
mysql分表的3种方法
一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时转载 2014-10-21 11:31:06 · 631 阅读 · 0 评论 -
mysql分区功能详细介绍,以及实例
一,什么是数据库分区前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi转载 2014-10-21 11:44:56 · 476 阅读 · 0 评论 -
mysql 语句case when
表的创建: CREATE TABLE `lee` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `birthday` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8转载 2014-05-29 15:38:06 · 640 阅读 · 0 评论 -
Mysql多对多查询、列合并
表信息资源表 synsource 199824 rows产品表 tab_product_detail 108 rows资源与产品多对多的关联表 tab_r_sourmach 1,113,86转载 2014-05-29 10:32:25 · 6442 阅读 · 0 评论 -
MYSQL AND OR的联用
MYSQL中”AND”和”OR”都是条件控制符,”AND”是求交集,而”OR”则是求并集,很多情况下,需要联用它们两个。以下是两张表,我只列出有用的字段。Table:student_score 学生成绩sid(学生ID) cid(课程ID) score(分数)5 1 505 2 1105 3 645 4 null……Table:course 课程id(ID)转载 2014-05-29 10:20:25 · 7946 阅读 · 0 评论 -
mysql中的多行查询结果合并成一个
SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id=17:利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行,如|1 | 10,20,20|。本文通过实例介绍了转载 2014-05-29 10:27:11 · 790 阅读 · 0 评论 -
mysql强制索引
mysql forceIndex 强制索引作者:knowsky出处:IT专家网论坛 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。 强制索引 FORCE INDEX SELECT * FROM TABLE1 FORCE INDEX (FI转载 2013-08-09 17:38:07 · 1054 阅读 · 0 评论 -
MySQL索引浅析
在数据库表中,使用索引可以大大提高查询速度。 假如我们创建了一个 testIndex 表: CREATE TABLE testIndex(i_testID INT NOT NULL,vc_NameVARCHAR(16) NOT NULL); 我们随机向里面插入了 1000 条记录,其中有一条 i_testID vc_Name 555 erquan 在查找 vc_Name="erq原创 2013-08-09 17:38:03 · 485 阅读 · 0 评论 -
查询mysql事务隔离级别
1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transaction isolatin level repeatable read; 4.设置系统当前隔离级别 set global transaction is原创 2013-08-09 17:37:18 · 498 阅读 · 0 评论 -
PHP与MYSQL事务处理
MYSQL的事务处理主要有两种方法:1、用begin,rollback,commit来实现begin开始一个事务rollback事务回滚commit事务确认2、直接用set来改变mysql的自动提交模式MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过setautocommit=0 禁止自动提交setautocommit=1 开启自动提交来实原创 2013-08-09 17:36:54 · 481 阅读 · 0 评论 -
Mysql增加用户
本机用户user开启所有权限GRANT ALL PRIVILEGES ON *.* TO user@localhost IDENTIFIED BY'password' WITH GRANT OPTION;flush privileges;10.10.10.80用户user开启所有权限grant ALL PRIVILEGES on *.* to user@10.10.10.80 iden原创 2013-08-09 17:34:32 · 604 阅读 · 0 评论 -
shell操作mysql
shell操作mysql方案1mysql -uuser -ppasswd -e"insert LogTable values()" 优点:语句简单缺点:支持的sql相对简单方案2准备一个sql脚本,名字为update.sql,例如:CREATE TABLE `user` ( `id` varchar(36) NOT NULL COMMENT '主键',原创 2013-08-09 17:34:21 · 437 阅读 · 0 评论 -
数据库的保存路径
/etc/my.cnf 4 [mysqld] 5 bind-address=10.11.11.11 6 datadir=/data/mysqldata/data原创 2013-08-09 17:34:17 · 752 阅读 · 0 评论 -
mysql命令
修改表名alter table table_name rename table_new_name原创 2013-08-09 17:34:12 · 443 阅读 · 0 评论 -
关系型数据库的不足
(1)关系数据库所采用的二维表格数据模型不能有效地处理多维数据,不能有效处理互联网应用中半结构化和非结构化的海量数据,如Web页面、电子邮件、音频、视频等。(2)高并发读写的性能低关系数据库达到一定规模时,非常容易发生死锁等并发问题,导致其读写性能下降非常严重。Web2.0网站数据库并发负载非常高,往往要达到每秒上万次读写请求。关系型数据库勉强可以应付上万次SQL查询,但硬盘I/O往往无原创 2013-08-09 17:33:44 · 1105 阅读 · 0 评论