MySQL
jackyrongvip
这个作者很懒,什么都没留下…
展开
-
有效配置MySQL参数
1.获取当前配置参数要优化配置参数,首先要了解当前的配置参数以及运行情况。使用下列命令可以获得目前服务器使用的配置参数:mysqld –verbose –help mysqladmin variables extended-status –u root –p 在MySQL控制台里面,运行下列命令可以获取状态变量的值:mysql> SHOW STATUS; 如果只要检查某几个状态变量,可原创 2013-07-01 16:14:55 · 590 阅读 · 0 评论 -
mysql 优化心得
mysql的优花其实是个艰难的工作,要搞的东西太多了,之前在http://www.cnblogs.com/jackyrong/archive/2008/05/04/1182331.html中摘了一些原则,最近对一个100多万条数据的表做优花时,有如下心得:1) 取必须要用的数据 这里对于select 语句中只选有用的字段,这样的原则就肯定人人都知道的了。但关键的是,要从全局考虑问题,原创 2013-07-01 16:15:16 · 671 阅读 · 0 评论 -
mysql 5中修改密码
mysql> use mysql Database changed mysql> select host,user from user; +-----------+------+ | host | user | +-----------+------+ | % | | | % | root | | localhost |原创 2013-07-01 16:15:40 · 458 阅读 · 0 评论 -
mysql 补遗1
最近小结归纳了些MYSQL中容易忽视和的操作,有的还是很不错的.1) perror代码查看工具 最近发现经常在MYSQL导入导出的时候,经常发现mysql中有error no:之类的错误提示信息,但要具体知道错在哪里的话,其实MYSQL有个自带的工具perror的,比如可以这样用 perror 30就可以看到代码30的是什么错误信息了.2)mysqlcheck工具原创 2013-07-01 16:15:56 · 625 阅读 · 0 评论 -
mysql补遗2
1 对备份的注意点 mysql 5中,要备份的话,当然要先设置日志了,在my.ini中设置如下 [mysqld]# The TCP/IP Port the MySQL Server will listen onport=3306log-bin="E:/mysql5/log/bin.log"log-error="E:/mysql5/log/error.log"log="E:/原创 2013-07-01 16:15:58 · 545 阅读 · 0 评论 -
mysql 索引实战
之前有个项目,已经充分用MYSQL的调优调了,速度感觉还可以.但发现索引没用上.于是调整之. 首先,数据库中有date字段,是int类型的,入库时用php的time()入库的,现在的需求是要求1天之内的记录,我们来看具体的写法,先看原来的 $query = "select * from record where del=to_days(curdate())-1 order by原创 2013-07-01 16:16:01 · 648 阅读 · 0 评论 -
mysql补遗3
小结权限的相关操作1 创建帐号 grant all privileges on *.* to z1@localhost; *.*表示对本地所有数据库及表都有权限,可以改为on test.user ,则对test数据库的user表有权限。 限制IP及加上密码 grant select,insert,update..... on test1.* to 'z1'@'loca原创 2013-07-01 16:16:03 · 496 阅读 · 0 评论 -
mysql补遗3
小结权限的相关操作1 创建帐号 grant all privileges on *.* to z1@localhost; *.*表示对本地所有数据库及表都有权限,可以改为on test.user ,则对test数据库的user表有权限。 限制IP及加上密码 grant select,insert,update..... on test1.* to 'z1'@'loca原创 2013-07-01 16:16:05 · 552 阅读 · 0 评论 -
linux 下装php5+mysql5+apache 2的笔记
装是装了很多次了,但还是觉得要笔记之比较好.环境是red hat linux 4+mysql5+apache 2+php51 安装apache tar zvxf httpd-2.0.46.tar.gz cd httpd-2.0.46 ./configure --prefix=/usr/local/apache2 --enable-so \ --enable-mods-share原创 2013-07-01 16:17:45 · 1021 阅读 · 0 评论 -
(转)mysqldump意外原因
mysqldump是非常重要的MySQL备份工具。然而在长年累月的使用过程中,TAOBAO多次出现了因mysqldump意外终止而导致备份失败的情况。以下是我们经常遇到的问题:1、Lost connection to MySQL server at ‘reading initial communication packet’:这个主要是因为DNS不稳定导致的。如果做了网络隔离,MySQL处原创 2013-07-01 16:21:33 · 1630 阅读 · 0 评论 -
(转)mysql中的query cache
顾名思义,MySQL Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。在大部分的 MySQL 分发版本中,Query Cache 功能默认都是打开的,我们可以通过原创 2013-07-01 16:22:07 · 704 阅读 · 0 评论 -
(转)mysql中的内存使用小结
mysql的内存管理其实是比较复杂的,小结下,分为两类:1 线程独享内存 2 全局共享内存 先说线程独享内存:线程栈信息使用内存(thread_stack):主要用来存放每一个线程自身的标识信息,如线程id,线程运行时基本信息等等,我们可以通过 thread_stack 参数来设置为每一个线程栈分配多大的内存。排序使用内存(sort_buffer_size):MySQL 用此内存区域原创 2013-07-01 16:22:11 · 587 阅读 · 0 评论 -
(转)Mysql Innodb 引擎优化
介绍: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的原创 2013-07-01 16:22:28 · 639 阅读 · 0 评论 -
(转)mysql的索引和锁的微妙关系
http://www.searchtb.com/2010/09/mysql%e8%a1%8c%e9%94%81%e6%b7%b1%e5%85%a5%e7%a0%94%e7%a9%b6.html做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为Select restnum fr原创 2013-07-01 16:24:06 · 1003 阅读 · 0 评论 -
Oracle承诺对MySQL不会放弃只会更好
本人翻译的文,原文发表在http://publish.itpub.net/a2010/0928/1109/000001109340.shtml在本次的JavaOne 2010上,Oracle已经承诺继续对MySQL社区版的大力支持,但你也许会对Oracle瞄准的目标架构和客户感兴趣。 Edward Screven,Oracle的首席架师,强调Oracle不但会继续对MYSQL企业版作出贡原创 2013-07-01 16:24:19 · 802 阅读 · 0 评论 -
mysql中的SQL_CACHE
mysql中的sql_cache是个容易忽视的地方,要使用的话,必须先设置query_cache_size,以及设置query_cache_type ,其中query_cache_type 这个可以被设置为 (只能是数字) 选项 含义 0 (OFF, 不缓存或重新得到结果) 1 (ON, 缓存所有的结果,除了 SELECT SQL_NO_CACHE ... 查询) 2 (原创 2013-07-01 16:24:45 · 716 阅读 · 0 评论 -
mysql 5.0中的profile功能
在MYSQL的5.0.37版本以上,支持profile的功能;小结如下:show profile 的格式如下:SHOW PROFILE [type [, type] … ] [FOR QUERY n] [LIMIT row_count [OFFSET offset]]type: ALL | BLOCK IO | CONTEXT SWITCHES |原创 2013-07-01 16:24:51 · 703 阅读 · 0 评论 -
mysql中的打开的文件描述符限制
Can't open file: '.\test\mytable.frm' (errno: 24)shell> perror 24OS error code 24: Too many open files 这样的错误的话,应该是mysql的文件描述符不够了,解决的方法为,增加操作系统的描述符号:设置OS参数(如果你有权限的话):在文件/etc/security/limits.co原创 2013-07-01 16:25:35 · 1185 阅读 · 0 评论 -
(转)MySQL InnoDB存储引擎的一些参数
http://www.ningoo.net/html/2008/mysql_innodb_parametes.html#more-322InnoDB做为MySQL目前最广泛的事务存储引擎,很多地方的设计和Oracle都是共通的。对于Oracle DBA来说,学习的时候可以多和Oracle的一些特性进行类比,当然也要明白二者之间的区别。innodb_additional_mem_pool_s原创 2013-07-01 16:25:46 · 551 阅读 · 0 评论 -
ruby rails 笔记1
近日开始读李刚老师的好书 ruby on rails开发实战,相当好的书,笔记之。我没用RAILS 2。0,只是用rails 1.2.6,就可以开始学习了1)安装rails 1.2.6 由于网上一用gem install rails --remote就会按2。0的版本装,不喜欢之,因此到网上下载了相关的1。2。6的包安装之 http://rubyforge.org/frs原创 2013-07-01 16:15:01 · 681 阅读 · 0 评论 -
mysql补遗4
这次继续mysql的索引问题,这里还是有不少原则可以总结一下的,大致归纳了如下面的1 对于组合索引,如果查询条件中有最左边的一个,一般都会用到, 比如有索引(a,b),在SQL语句中如果有select * from table where a='.....',则这个索引一般用到,是最左匹配原则,但如果是按where b='....',则一般不会用到.2 对于like查询,比如'%ab原创 2013-07-01 16:16:07 · 534 阅读 · 0 评论 -
(转)mysql isam的插入效率比innodb的要高
今天看到concurrent_insert这个参数,解释一下: MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。 当 concurrent_insert设置为0时,不允许并发插入。 当concurrent_insert设置为1时,如果MyISAM表中没有空洞(即表的中间没有被删除的原创 2013-07-01 16:24:47 · 1679 阅读 · 0 评论 -
(转)mysql的nproc
前几天, 在管理系统的时候遇到一个奇怪的问题, 今天才有机会安装好MySQL环境来重现此问题,由于不是最原始的环境, 所以未必能够完全重现, 我只能努力重现关键问题了.. 我觉得此问题有点特别, 故在此大概的回想下当时的情景..工作时, 执行了一个su – mysql 的命令, 遇到了下面这样一个错误..view sourceprint?1 [root@dbmain ~]# su - my原创 2013-07-01 16:25:04 · 709 阅读 · 0 评论 -
(转)MySQL相关的一个异常错误
前几天, 在管理系统的时候遇到一个奇怪的问题, 今天才有机会安装好MySQL环境来重现此问题,由于不是最原始的环境, 所以未必能够完全重现, 我只能努力重现关键问题了.. 我觉得此问题有点特别, 故在此大概的回想下当时的情景..工作时, 执行了一个su – mysql 的命令, 遇到了下面这样一个错误..view sourceprint?1 [root@dbmain ~]# su - my原创 2013-07-01 16:25:50 · 652 阅读 · 0 评论 -
(转)MySQL: Too many connections
$mysql -urootERROR 1040 (00000): Too many connections上面的错误,估计很多人都遇到过,Aurimas Mikalauskas在MySQL Performance Blog已经提到了一个解决办法(生产环境慎用之):$gdb -p $(cat data/mysql_sandbox5087.pid) \-ex "set max_connect原创 2013-07-01 16:25:57 · 1981 阅读 · 0 评论 -
(转)MySQL之Handler_read_*
在MySQL里,我们一般使用SHOW STATUS查询服务器状态,语法一般来说如下:SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern' | WHERE expr]执行命令后会看到很多内容,其中有一部分是Handler_read_*,它们显示了数据库处理SELECT查询语句的状态,对于调试SQL语句有很大意义,可惜实际很多人并不理解它们的实际意义,本原创 2013-07-01 16:25:59 · 595 阅读 · 0 评论 -
推荐一款很好用的oracle,mysql,sqlserver表结构导出到word的软件
平时有时写文档,往往会遇到这样的情况,比如数据库表结构设计好,在数据库中加了注释后,想导出到WORD,EXCEL文档,今天终于发现有个不错的工具可以实现,实现其实是利用OFFICE 的VBA宏去实现的,实现的时候要启用宏即可,作者的BLOG在:http://blog.csdn.net/yzsind/分别有四个软件oracle 转到WORDhttp://www.itpub.net/原创 2013-07-01 16:26:08 · 2689 阅读 · 0 评论 -
几个MYSQL中的小TIPS语句
小结一下6个MYSQL 语句中常用的小TIPS1) 比如要计算某个人现在多大,假设该人的出生年月变量是@dateofbirth ,则SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;2 计算日期差 假设两个日期格式为yyyy-mm-dd hh:mm:ss,则可以计算相差的秒数原创 2013-07-01 16:26:31 · 724 阅读 · 0 评论 -
(转)mysqlslow log分析
slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。1. 基本使用 $mysqldumpslow slow.log > slow.dat$more slow.dat 输出的数据:Count: 3 Time=62.67s (18原创 2013-07-01 16:26:35 · 780 阅读 · 0 评论 -
mysql中query cache的局限性
最近在帮人调优MYSQL时,感觉mysql的query cache其实并不是越大越好的,因为其实当数据表有如下变化时,CACHE实际时失效的:包括: INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等所以如果表是频繁读的话,那对query cache调整下还可以,否则还是没怎么作用的.附原创 2013-07-01 16:26:47 · 775 阅读 · 0 评论 -
(转)B树的一个很好的小结文
见到一篇B树很好的小结文,收藏之http://www.themysql.com/mysql/b%e6%a0%91.html原创 2013-07-01 16:26:53 · 596 阅读 · 0 评论 -
MYSQL性能调优与架构设计书读书笔记1
《MYSQL性能调优与架构设计书》,是阿里巴巴著名MYSQL DBA简朝阳的大作,最近在读,觉得十分好,笔记之:mysql读书笔记11 mysqladmin -u xxxx -p密码 -h localhost ping 用ping命令检查mysqld状态是否正常2 获取当前mysql的状态值 mysqladmin -u xxxx -p密码 -h localhost原创 2013-07-01 16:27:06 · 736 阅读 · 0 评论 -
mysql中的一个limit的调优
一般来说,数百万的记录,取一定范围的条数,用LIMITselect * from mytable where col = xxx limit offset, limit;但用explain一下,会发现是all全表扫,解决的一个好的办法是建立索引于col列后,假如ID是递增的话,可以这样select * from mytable where id > offset and id原创 2013-07-01 16:27:11 · 670 阅读 · 0 评论 -
PHP 5.3中的mysqlnd
php 5.3其实一直很多程序员都不敢用,的确,API方面做了很多的修改,函数方面也变了很多东西,因此要多测试才行.但今天发现PHP 5.3居然有个MYSQL方面的改东,那就是mysqlnd,这个是php版的mysql客户端,而这个mysqlnd有效降低内存的使用以及提高性能。具体可以看:http://dev.mysql.com/downloads/connector/php-mysqlnd原创 2013-07-01 16:27:20 · 1425 阅读 · 0 评论 -
(转)addslashes与mysql_real_escape_string的区别
我们为了更深层次的探究这两个函数的不同..还是去看一看PHP的源码吧..这是PHP的addslashes函数..PHP_FUNCTION(addslashes) { zval **str; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE) {原创 2013-07-01 16:27:41 · 1692 阅读 · 1 评论 -
(转)mysql的优先级锁
http://publish.itpub.net/a2011/0304/1162/000001162908.shtml通过锁机制,可以实现多线程同时对某个表进行操作。如下图所示,在某个时刻,用户甲、用户乙、用户丙可能会同时或者先后(前面一个作业还没有完成)对数据表A进行查询或者更新的操作。当某个线程涉及到更新操作时,就需要获得独占的访问权。在更新的过程中,所有其它想要访问这个表的线程必须要等到其原创 2013-07-01 16:29:40 · 2140 阅读 · 0 评论 -
PHP中得到指定的时间段
最近在项目中,遇到个比较特殊的要求,比如,MYSQL中,比如今天是2004年12月13日,星期1,如果要取得上周一0:00到周日0:00(就是2004年12月6日0:00到2004年12月12日周日0:00)之间的记录,要如何写呢? 其实可以这样写,经过我的探索和发现后知道:比如你日期字段是Col1where week(col1,1)=week(FROM_DAYS(TO_DAY原创 2013-07-02 09:25:40 · 1065 阅读 · 0 评论 -
mysql 5.7中关于count(*)的优化
在mysql 5.7中,对于select count(*) from table 的优化,可以设置为:select count(*) from table where uid>0其中uid为辅助索引,辅助索引不存放数据,而是有一个指针指向对应的数据块,因此速度更快;但注意到http://www.ywnds.com/?p=10369中提到的问题,要引起注意原创 2017-10-07 19:48:20 · 1996 阅读 · 0 评论 -
mysql中pager命令的妙用
在mysql 中,如果linux下,使用pager命令将大大提高工作效率,下面重点看几个例子:1 首先看下基本用法 mysql> pager lessPAGER set to 'less'mysql> show engine innodb status\G 这个时候就可以开始使用了less模式了,可以使用空格到下一页,quit退出;甚至可以直接执行li...2013-01-23 22:43:37 · 132 阅读 · 0 评论 -
mysql中同义词的一个模拟
mysql没提供同义词的功能,oracle有,但其实可以简单模拟下。比如:CREATE DATABASE seussdb;CREATE DATABASE appdb; GRANT ALL ON seussdb.* TO student;GRANT ALL ON appdb.* TO student; 有两个数据库,给一个用户授权权限能访问它们;然后往其中一...2013-11-25 21:59:19 · 2605 阅读 · 0 评论