随笔分类 - MySQL
摘要:这两天看《构建高性能Web站点》这本书,感觉写的真是不错,很多实际项目中会碰到的问题都有所提及,今天看到一个最左前缀原则,以前也听说过,不过一直没搞明白,今天查了下。通过实例理解单列索引、多列索引以及最左前缀原则实例:现在我们想查出满足以下条件的用户id:mysql>SELECT `uid` FRO...
阅读全文
摘要:1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法...
阅读全文
摘要:本文转载自de.cel《MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONCAT》在搜索Mysql中怎么实现把一列的多行数据合并成一行时,找到了group_contact函数,它比SqlServer中的select @list=@list+列名 from 表名,的形式方...
阅读全文
摘要:今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句...
阅读全文
摘要:在不加WHERE限制条件的情况下,COUNT(*)与COUNT(COL)基本可以认为是等价的;但是在有WHERE限制条件的情况下,COUNT(*)会比COUNT(COL)快非常多;具体的数据参考如下:mysql> SELECT COUNT(*) FROM cdb_posts where fid = ...
阅读全文
摘要:前言为什么要写这篇文章呢,从去年年底开始,就和很多做技术的朋友交流过,从数据库设计到数据库架构各个方面的内容。有一些朋友执着于ORM,执着于所谓的数据库设计,却忘记了一切技术是要为业务服务这个基石。当然这文章里也有一些自己的理解,想向大家表达。范式是什么范式是符合某一种级别的关系模式的集合。关系数据...
阅读全文
摘要:MYSQL管理之主从同步管理MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙述mysql主从的管理。MYSQL主从同步的作用(1)数据分布(2)负载...
阅读全文
摘要:Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select .
阅读全文
摘要:数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。范式说明1.1第一范式(1NF)无重复的列所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含
阅读全文
摘要:Explain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表的EXPLAIN执行计划包含的信息id包含一组数字,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行select_ty.
阅读全文
摘要:•Mysql相关工具 –Mysqlslap 压力测试工具 –Mysqlsla 日志分析工具–Mysqlreport 效能监控工具 –Mysqlproxy 快速实现读写分离以及负载均衡–percona-toolkit 监控类工具 如监视死锁–Sysbench 多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL–MySQL-Transefer 多线程同步工具–Relayfetch 解决mysql replication 中主从延迟问题–percona-xtrabackup 热备和恢复MySQL –Mydumpe
阅读全文
摘要:在调用存储过程中,就会涉及到表锁,行锁这一概念:所谓区别:有索引的时候就是行锁,没有索引的时候就是表索。innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的.表锁演示(无索引)Session1:mysql> set autocommit=0;mysql> select * from innodb_test;+------+-------------+| id | name |+------+-------------+| 1 | woshiceshi || 2 | woshiceshi2 || 3 | woshiceshi3 |+------+-------------
阅读全文
摘要:如果你的MySQL出现了性能问题,第一个需要“诊断”的就是slow log(慢日志)了。slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。1. 基本使用$mysqldumpslow slow.log > slow.dat$more slow.dat输出的数据:Count: 3 Time=62.67s (188s) Lock=0.00s (0s) Rows=1623770.7 (4871312), root[root]@localho
阅读全文
摘要:由于某个临时需求,需要给在线MySQL的某个超过千万的表增加一个字段。此表在设计之时完全按照需求实现,并没有多余的保留字段。我们知道在MySQL中如果要执行ALTER TABLE操作,MySQL会通过制作原来表的一个临时副本来工作。对于表结构的修改在副本上施行,然后将新表替换原始表,此时会产生锁表,用户可以从原始表读取数据,而用户的更新和写入操作都会被lock,待新表准备好后写入新表。这对于在线的数据量较大的表来说是绝对无法容忍的,并且由于这种在线操作时间会很长,此时如果show processlist,会发现有若干的MySQL进程处于lock状态,当这种进程太多超过单台服务器允许的MySQL
阅读全文

浙公网安备 33010602011771号