MySQL 5.5.13参数说明:[client]character-set-server = utf8port= 3306socket= /data/mysql/3306/mysql.sock[mysqld]character-set-server = utf8user= mysqlport= 3306socket= /data/mysql/3306/mysql.sockbasedir
对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEX SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽略索
1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作。这次修改了下面四个配置项:1)将 innodb_flush_log_at_trx_commit 配置设定为0;按过往经验设定为0,插入速度会有很大提高。0: Write the log buffer to the log file and flush the log file eve
例子如下:CREATE TEMPORARY TABLE NEW_TIME_CLIENT(UUID VARCHAR(36), CLIENT_MAC VARCHAR(17), ONLINE_SECONDS INT)ENGINE=MEMORY;SET @SQL_NEW_TIME_CLIENT=CONCAT("INSERT INTO NEW_TIME_CLIENTSELECT UUID, SUBSTRI
select name from mysql.proc where db = '' and `type` = 'PROCEDURE' //查询存储过程select name from mysql.proc where db = '' and `type` = 'FUNCTION' //查询函数select name,body_utf8 from mysql.proc where db = ''
如果需要更改某一列的的默认值属性如:ALTER TABLE USER MODIFY COLUMN NAME VARCHAR(64) DEFAULT 'DEFAULT_USER';这样会导致整个表被锁,所有的行都更新完毕锁资源才会释放。这种情况下可以使用这种命令ALTER TABLE USER ALTER COLUMN NAME SET DEFAULT 'DEFAULT_USER';瞬间完成。因为
MYSQL中如果使用GROUP BY会自动包含一个ORDER BY 操作。但是如果不需要的话,则会比较消耗资源。那么,在整个语句最后加上ORDER BY NULL,就可以绕开这个没有必要的操作了。SELECT IDS, COUNT(*) FROM T1 GROUP BY IDS;=>SELECT IDS, COUNT(*) FROM T1 GROUP BY IDS ORDER BY NULL
如果发现MYSQL实例中有大量的连接都处于非正常状态,必须KILL的时候可以采用批量的方式。 SELECT CONCAT('KILL ',ID,';) FROM INFORMATION_SCHEMA.PROCESSLIST;根据条件还可以再后面加入WHERE USER=''; 这样就可以不用一个一个手工去KILL了。
优先操作如下: 强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1) …以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。 忽略索引 IGNORE INDEXSELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …在上面的SQL语句中,TABL
EXPLAIN为用于SELECT语句中的每个表返回一行信息。表以它们在处理查询过程中将被MySQL读入的顺序被列出。MySQL用一遍扫描多次联接(single-sweep multi-join)的方式解决所有联接。这意味着MySQL从第一个表中读一行,然后找到在第二个表中的一个匹配行,然后在第3个表中等等。当所有的表处理完后,它输出选中的列并且返回表清单直到找到一个有更多的匹配行的表。从该表读入下
Checking table 正在检查数据表(这是自动的)。Closing tables 正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。Connect Out 复制从服务器正在连接主服务器。Copying to tmp table on disk 由于临时结果集大于tmp_table_siz
DATE_FORMAT(date,format)根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)%W 星期名字(Sunday……Saturday)%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)%Y 年, 数字, 4 位%y 年, 数字, 2 位%a 缩写的星期名字(Sun……Sat)%d 月
查找目前的锁情况,杀死相应进程。MYSQL> SHOW PROCESSLIST;MYSQL> KILL pid
在大数据量MYISAM引擎表进行JOIN的时候,MYSQL只有NEST LOOP方式进行运算,效率非常低。所以,这种时候应该使用HASH索引。由于只有MEMORY和NDB引擎支持HASH索引,所以应该用他们作为缓存表。例如:CREATE TEMPORARY TABLE T1 ENGINE=MEMORY AS SELECT * FROM TABLEA;ALTER TABLE T1 ADD INDEX
出现Out of resources when opening file './xxx.MYD' (Errcode: 24)错误是因为打开的文件数超过了my.cnf的--open-files-limit。open-files-limit选项无法在mysql命令行直接修改,必须在my.cnf中设定,最大值是65536。重新启动mysqld,mysql> show variables like
范围分区:CREATE TABLE BIGTABLE(ID INT,SNPTIME DATETIME NOT NULL,VALUE VARCHAR(20),PRIMARY KEY (SNPTIME, ID)) ENGINE=InnoDBpartition by range (TO_DAYS(SNPTIME))(PARTITION p1 VALUES LESS THAN (to_days('2009
用户添加 bin>mysql -u root mysql> grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令'; 权限1,权限2,...权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,s
MySQL 5.5以上的版本是需要CMAKE后再安装的,如果不想采用RPM包安装方式的话。步骤如下:1、获取CMAKE wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz (也可以使用yum install cmake)2、安装CMAKE yum install gcc yum ins
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号