随笔分类 - Mysql
摘要:MySQL的Innodb存储引擎的索引分为聚集索引和非聚集索引两大类,理解聚集索引和非聚集索引可通过对比汉语字典的索引。汉语字典提供了两类检索汉字的方式,第一类是拼音检索(前提是知道该汉字读音),比如拼音为cheng的汉字排在拼音chang的汉字后面,根据拼音找到对应汉字的页码(因为按拼音排序,二分
阅读全文
摘要:今天在subway上看到一篇不错的关于mysql性能优化方面一篇文章,个人感觉,这是这几年看到的一篇把mysql索引优化说的最彻底的一篇文章。 索引(index)类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说50
阅读全文
摘要:window下 1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u dbu
阅读全文
摘要:一、简单描述表结构,字段类型 desc tabl_name; 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。 例如:desc table_name 二、查询表中列的注释信息 select * from information_schema.columnswhere table_schem
阅读全文
摘要:setp1: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) step2:进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限 sudo su回车后输入以下命令来禁止mysql验证功能 ./mys
阅读全文
摘要:date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 后面的 '%Y%m%d' 主要是将返回值格式化 例如: mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' ) ->20071120 mysql>SE
阅读全文
摘要:很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。看下面的例子:假设有一张订单表(orders),包含order_id和product_id二个字段。一共有31条数据。符合下...
阅读全文
摘要:现在问题来了,如果INSERT多行记录, ON DUPLICATE KEY UPDATE后面字段的值怎么指定?要知道一条INSERT语句中只能有一个ON DUPLICATE KEY UPDATE,到底他会更新一行记录,还是更新所有需要更新的行。这个问题困扰了我很久了,其实使用VALUES()函数一切
阅读全文
摘要:MySQL的limit工作原理就是先读取n条记录,然后抛弃前n条,读m条想要的,所以n越大,性能会越差。一般的分页做法,测试耗时 10.961sSELECT*FROMv_history_dataLIMIT5000000,10优化后,测试耗时 1.943sSELECT*FROMv_history_da...
阅读全文
摘要:想很多朋友都不怎么会在mysql中使用float类型,特别是用到金钱时我们可能会用双精度来做,我们知道mysql的float类型是单精度浮点类型不小心就会导致数据误差.单精度浮点数用4字节(32bit)表示浮点数采用IEEE754标准的计算机浮点数,在内部是用二进制表示的如:7.22用32位二进制是...
阅读全文
摘要:我们都知道MyISAM是表级锁,而Innodb是行级锁,现在就测试下他们的性能区别:<?php$conn = mysql_connect("localhost","root","");mysql_select_db("book",$conn);$sql = "update count_t set c...
阅读全文
摘要:第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单...
阅读全文
摘要:数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现×: 不会出现脏读不可重复读幻读Read uncommitted√...
阅读全文
摘要:1. MySQL数据库主从同步延迟原理。要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高,slave的Slave_IO_Running线程到主库取日志,效率很比较高,下一步,问题来...
阅读全文
摘要:1、MAX对于MAX取某一列最大值的时候,优化方案就是建立索引,然后倒叙排列然后取第一个2、count(*) 和 count(id)的区别如果某一列存在null的话,那么null的行将不被统计。例如有id和name两列,有100行数据count(*) 为100count(name)为98,两行Nul...
阅读全文
摘要:1、注意:在同步之前一定要进行授权操作给从服务器grant all slave on *.* touser@192.168.1.2identified by 'pass'查看binlogshow master status;清除binlogreset master;2、一般主服务器进行 增、删、改,...
阅读全文
摘要:set autocommit = 0;insert into t1(name) values ("user1");savepoint p1;insert into t1(name) values("user2");svaepoint p2;insert into t1(name) values("u...
阅读全文
摘要:outfile 导出文件select name from t1 into outfile "/tmp/test.txt"infile 导入文件导入到表t1中的name列load data infile "/tmp/test.txt" into table t1(name);导入和导出的时候可以关闭索...
阅读全文
摘要:让我们用现实生活中的例子来理解这2类索引。假设你的邻居到你家,问你“Woody Tu”的电话号码。在这种情况下,电话本目录就是个聚集索引。你打开电话本目录,跳过3/4的页,假定他的名字应该出现在目录的最后一部分。在前后翻过几页后,你找到了列有“Woody Tu”名字的页。现在你就可以把号码告诉你的邻...
阅读全文
摘要:ORM----Oriented Relationship Mapper,即用面向对象的方式来操作数据库。归根结底,还是对于SQL语句的封装。首先,我们的数据库有如下一张表:我们希望能够对这张表,利用setUserid("11111"),即可以设置userid;getUserid()既可以获得对象的u...
阅读全文