标签归档:mysql

MySQL自带数据库 information_schema介绍

nformation_schema提供了访问数据库元数据的方式,其中保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名或表名,列的数据类型,或访问权限等。在INFORMATION_SCHEMA中,有些只读表,它们实际上是视图,而不是基本表,所以无法看到与之相关的任何文件。

information_schema数据库表说明:

SCHEMATA:提供了当前mysql实例中所有数据库的信息,show databases的结果取之此表。

TABLES:提供了关于数据库中的表的信息(包括视图),详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息,show tables from schemaname的结果取之此表。

继续阅读


1 星2 星3 星4 星5 星 (4 人评价, 平均分: 4.75 / 5)
Loading...

数据库的原理

今天看了一位博友的文章,觉得很棒,转载一下http://blog.jobbole.com/100349/?utm_campaign=in_app_share&utm_medium=iOS&utm_source=copy

由于本文是个长篇技术文章,涉及到很多算法和数据结构知识,你尽可以慢慢读。有些概念比较难懂,你可以跳过,不影响理解整体内容。

这篇文章大约分为3个部分:

  • 底层和上层数据库组件概况
  • 查询优化过程概况
  • 事务和缓冲池管理概况

回到基础

很久很久以前(在一个遥远而又遥远的星系……),开发者必须确切地知道他们的代码需要多少次运算。他们把算法和数据结构牢记于心,因为他们的计算机运行缓慢,无法承受对CPU和内存的浪费。

在这一部分,我将提醒大家一些这类的概念,因为它们对理解数据库至关重要。我还会介绍数据库索引的概念。

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

linux下安装mysql5.6

随着mysql越来越受欢迎,但对于刚接触linux系统的人来说,安装mysql比在windows下痛苦的多,希望这个文章等够帮助到各位,以下是主要的安装步骤:

1、官网下载mysql安装包:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz

2、下载cmake安装包:wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

3、解压cmake:tar xzvf cmake-2.8.4.tar.gz

4、cd cmake-2.8.4

5、./bootstrap

6、gmake

7、gmake install

8、解压Mysql:tar xzvf mysql-5.6.20.tar.gz

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

mysql开启慢查询及常用mysql命令

  1. 查看是否开启慢查询命令:show variables like ‘%slow%’;
  2. 开启慢查询命令:set slow_query_log=’ON’;
  3. 设置慢查询语句的时间命令:set global long_query_time=2;
  4. 查看当前运行的语句命令:show full processlist;
  5. 查看表的索引命令:show index FROM table_name;
  6. 创建索引目录:ALTER TABLE table_name  ADD INDEX index_name (column_list);
  7. 查看执行计划命令:explain SELECT * FROM table_name where id = 10000;
  8. 导出:先进入mysql的文件夹 cd /usr/local/mysql/,再执行命令: mysqldump -u user -p dbname > dbname.sql,注意:user 代表用户名,dbname 代表数据库名称
  9. 查看某个数据库所有表的记录数:use information_schema;   select table_name,table_rows from tables where TABLE_SCHEMA = ‘dbname’;
  10. 启动mysql:service mysqld start (5.0版本是mysqld);service mysql start (5.5.7版本是mysql)
  11. 查看mysql的bin-log日志:show binary logs;
  12. 清理mysql的bin-log日志:如,清理mysql-bin.000018之前的日志:purge binary logs to ‘mysql-bin.000018’;
  13. 查看数据库某个表的引擎:show table status from db_name where name=’table_name’;
  14. 修改数据库某个表的引擎:alter table table_name engine=innodb;
  15. show status like ‘Handler_read%’;  注意:handler_read_key:这个值越高越好,越高表示使用索引查询到的次数; handler_read_rnd_next:这个值越高,说明查询低效

1 星2 星3 星4 星5 星 (2 人评价, 平均分: 5.00 / 5)
Loading...

采用MySQL Profiling分析耗CPU、IO等的语句

在本章第一节中我们还提到过通过 Query Profiler 来定位一条 Query 的性能瓶颈,这里我们再详细介绍一下 Profiling 的用途及使用方法。
要想优化一条 Query,我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里,是消耗的 CPU计算太多,还是需要的的 IO 操作太多?要想能够清楚的了解这些信息,在 MySQL 5.0 和 MySQL 5.1正式版中已经可以非常容易做到了,那就是通过 Query Profiler 功能。
MySQL 的 Query Profiler 是一个使用非常方便的 Query 诊断分析工具,通过该工具可以获取一条Query 在整个执行过程中多种资源的消耗情况,如 CPU,IO,IPC,SWAP 等,以及发生的 PAGE FAULTS,CONTEXT SWITCHE 等等,同时还能得到该 Query 执行过程中 MySQL 所调用的各个函数在源文件中的位置。

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

mysql 性能分析及explain(解析)用法

1 使用explain语句去查看分析结果,如
explain select * from test1 where id=1;
会出现:
id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列其中,
type=const表示通过索引一次就找到了,
key=primary的话,表示使用了主键 
type=all,表示为全表扫描,
key=null表示没用到索引;
type=ref,因为这时认为是多个匹配行,在联合查询中,一般为REF

1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

mysql innodb 配置详解

mysql innodb 配置详解

innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。

innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以容纳额外的数据。例如: innodb_data_file_path=/disk1/ibdata1:900M;/disk2/ibdata2:50M:autoextend两个数据文件放在不同的磁盘上。数据首先放在ibdata1中,当达到900M以后,数据就放在ibdata2中。一旦达到50MB,ibdata2将以 8MB为单位自动增长。如果磁盘满了,需要在另外的磁盘上面增加一个数据文件。

继续阅读


1 星2 星3 星4 星5 星 (2 人评价, 平均分: 5.00 / 5)
Loading...

MySQL配置文件my.cnf优化详解(转)

以MySQL 5.5.13为例

参数说明:

[client]

character-set-server = utf8

port    = 3306

socket  = /data/mysql/3306/mysql.sock

[mysqld]

character-set-server = utf8

user    = mysql

port    = 3306

socket  = /data/mysql/3306/mysql.sock

basedir = /usr/local/webserver/mysql

datadir = /data/mysql/3306/data

log-error = /data/mysql/3306/mysql_error.log

pid-file = /data/mysql/3306/mysql.pid

# table_cache 参数设置表高速缓存的数目。每个连接进来,都会至少打开一个表缓存。#因此, table_cache 的大小应与 max_connections 的设置有关。例如,对于 200 个#并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的查询#的一个联接中表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。

继续阅读


1 星2 星3 星4 星5 星 (3 人评价, 平均分: 5.00 / 5)
Loading...

修改mysql编码格式

mysql> SHOW VARIABLES LIKE ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
7 rows in set (0.00 sec)

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

MySQL创建、删除、重建和查看索引命令

MySQL数据库索引研究系列第一期,MySQL创建、删除、重建和查看索引命令、掌握创建索引、删除索引、重建索引和查看索引的命今。

1. 创建索引(PRIMARY KEY,INDEX,UNIQUE)
支持创建主键索引,联合索引和普通索引命令
mysql>ALTER TABLE tbl_name ADD INDEX index_name (column list);
mysql>ALTER TABLE tbl_name ADD UNIQUE index_name (column list);
mysql>ALTER TABLE tbl_name ADD PRIMARY KEY index_name (column list);

继续阅读


1 星2 星3 星4 星5 星 (4 人评价, 平均分: 5.00 / 5)
Loading...