易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : mysql

MySQL的my.cnf优化实例

http://linux.chinaitlab.com/MYSQL/524755_2.html
http://bbs.chinaunix.net/archiver/?tid-809159.html
 在Apache, PHP,
MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接
影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验
进行判断,然后设置合理的参数。
下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化;二是MySQL自身(my.cnf)的优化。

(1) 服务器硬件对MySQL性能的影响
a)
磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变。
MySQL每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以,通常认为磁盘I/O是制约MySQL性能的最大因素之一,对于日均访问量
在100万PV以上的Discuz!论坛,由于磁盘I/O的制约,MySQL的性能会非常低下!解决这一制约因素可以考虑以下几种解决方案:
使用RAID-0+1磁盘阵列,注意不要尝试使用RAID-5,M ......

MySQL的查询优化很傻

select id from message where author_id in (select followed_id from Relation where follower_id=1) order by id desc   和 分别执行 $userlist = select followed_id from Relation where follower_id=1 再 select id from message where author_id in ($userlist) order by id desc   竟然有两个数量级的差别,DAMN IT!!!! ......

Mysql 表结构

MYSQL中修改表结构ALTER用法
ALTER TABLE Result ADD xinlinDoc longblob;
ALTER TABLE Result ADD xinlinDocName varchar(50);
其它实例:
CREATE TABLE t1(a INTEGER,b CHAR(10)); // 创建的表t1开始
ALTER TABLE t1 RENAME t2; // 重命名表,从t1到t2
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20); // 为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 ADD d TIMESTAMP; // 增加一个新TIMESTAMP列,名为d
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a); // 在列d上增加一个索引,并且使列a为主键
ALTER TABLE t2 DROP COLUMN c; // 删出列c
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c); // 增加一个新的AUTO_INCREMENT整数列,命名为c。注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。当你增加一个AUTO_INCREMENT列时,自动地用顺序数字填入列值。 ......

MySQL数据库之UPDATE更新语句精解

 
一、INSERT和REPLACE
INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。
1. INSERT的一般用法
MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。
INSERT INTO tablename(列名…) VALUES(列值);
而在MySQL中还有另外一种形式。
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;
第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。如下面的语句向users表中插入了一条记录:
INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);
第二种方法允许列名和列值成对出现和使用,如下面的语句将产生中样的效果。
INSERT INTO users SET id = 123, name = '姚明', age = 25;
如果使用了SET方式,必须至少为一列赋值。如果某一个字段使用了省缺值(如默认或自增值),这两种方法都可以省略这些字段。如id字段上使用了自增值,上面两条语句可以写成如下形式:
INSERT INTO users (name, age) VALUES('姚明',25);
INSERT INTO uses SET name = '姚明', age = 25;
MySQL在VAL ......

linux 下c++及mysql对时间处理的常用技巧

mysql 截取某一个时间(datetime类型)的日期:
方法1:select date(row_name) from table_name where row = row1;
方法2:select left(row_name, 10) from table_name where row = row1;
方法3:select cast(row_name as char[10]) from table_name where row = row1;
取得某个日期的time_t数值:select unix_timestamp(date(row_name)) from table_name where row = row1;
以time_t为参数取得某个时间
time_t 是'1970-01-01 00:00:00'以来的秒数
select '1970-01-01 00:00:00'+ INTERVAL time_t_num SECOND ;
取得当前日期:select curdate();
取得当前时间:select now();
将日期转化为短日期格式
SELECT REPLACE(date(row_name),  '-0',  '-');
linux下c++常用时间处理函数
clock()用来程序计时
例如: 以下摘自
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
   long    i = 10000000L;
   clock_t start, finish;
   double  duration;
   /* 测量一个事件持续的时间*/
   pri ......

linux 下c++及mysql对时间处理的常用技巧

mysql 截取某一个时间(datetime类型)的日期:
方法1:select date(row_name) from table_name where row = row1;
方法2:select left(row_name, 10) from table_name where row = row1;
方法3:select cast(row_name as char[10]) from table_name where row = row1;
取得某个日期的time_t数值:select unix_timestamp(date(row_name)) from table_name where row = row1;
以time_t为参数取得某个时间
time_t 是'1970-01-01 00:00:00'以来的秒数
select '1970-01-01 00:00:00'+ INTERVAL time_t_num SECOND ;
取得当前日期:select curdate();
取得当前时间:select now();
将日期转化为短日期格式
SELECT REPLACE(date(row_name),  '-0',  '-');
linux下c++常用时间处理函数
clock()用来程序计时
例如: 以下摘自
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
   long    i = 10000000L;
   clock_t start, finish;
   double  duration;
   /* 测量一个事件持续的时间*/
   pri ......

linux 下c++及mysql对时间处理的常用技巧

mysql 截取某一个时间(datetime类型)的日期:
方法1:select date(row_name) from table_name where row = row1;
方法2:select left(row_name, 10) from table_name where row = row1;
方法3:select cast(row_name as char[10]) from table_name where row = row1;
取得某个日期的time_t数值:select unix_timestamp(date(row_name)) from table_name where row = row1;
以time_t为参数取得某个时间
time_t 是'1970-01-01 00:00:00'以来的秒数
select '1970-01-01 00:00:00'+ INTERVAL time_t_num SECOND ;
取得当前日期:select curdate();
取得当前时间:select now();
将日期转化为短日期格式
SELECT REPLACE(date(row_name),  '-0',  '-');
linux下c++常用时间处理函数
clock()用来程序计时
例如: 以下摘自
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
   long    i = 10000000L;
   clock_t start, finish;
   double  duration;
   /* 测量一个事件持续的时间*/
   pri ......

Mysql备份还原的一个bug

从mysql备份出来的sql文件进行还原操作时报错,查看错误日志,内容如下:
Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=50913 DEFAULT CHARSET=gbk' at line 21
原因如下:
导出文件中的源码:
  PRIMARY KEY (`row_id`) USING BTREE,
  UNIQUE KEY `columnAindex` (`columnA`),
  KEY `columnBindex` (`columnB`) USING HASH,
  KEY `columnCindex` (`columnC`) USING BTREE,
...
正确的写法:
  PRIMARY KEY USING BTREE  (`row_id`),
  UNIQUE KEY `columnAindex` (`columnA`),
  KEY `columnBindex` USING HASH (`columnB`),
  KEY `columnCindex` USING BTREE (`columnC`),
...
将导出文件中的所有索引类型(USING BTREE 等)挪到索引列(columnB等)的前面,就能够正常完成导入操作。 ......
总记录数:2220; 总页数:370; 每页6 条; 首页 上一页 [299] [300] [301] [302] 303 [304] [305] [306] [307] [308]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号