标签归档:MySQL

mysql innodb 性能优化

默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用
比如最重要的两个参数
innodb_buffer_pool_size 默认是8M
innodb_flush_logs_at_trx_commit 默认设置的是1 也就是同步刷新log(可以这么理解)
innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有 InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablesp... 继续阅读

发表在 db | 标签为 , | mysql innodb 性能优化已关闭评论

常见MySQL error code和SQLSTATE code

常见MySQL error code和SQLSTATE code:

MySQL error code        SQLSTATE code            Error message

1011                    HY000                    Error ...

继续阅读

发表在 db | 标签为 | 常见MySQL error code和SQLSTATE code已关闭评论

mysql DECLARE

DECLARE condition_name CONDITION FOR condition_value
 
condition_value:
    SQLSTATE [VALUE] sqlstate_value
  | mysql_error_code

这个语句指定需要特殊处理的条件。它将一个名字和指定的错误条件关联起来。这个名字可以随后被用在DE...

继续阅读

发表在 db | 标签为 | mysql DECLARE已关闭评论

mysql 自增ID

Q:怎么获得当前的自增的最大值? 
A:select @@identity

Q:怎么获得table的当前自增最大值? 
A:select max(id) from table

Q:MYSQL中的LAST_INSERT_ID()和MSSQL中的@@IDENTITY 
A:按照应用需要,常常要取得刚刚插入数据库表里的记录的ID值。 
   在MYSQL中可以使用LAST_INSERT_ID()函数,在MSSQL中使用@@IDENTITY。挺方便的一个函数。

  但是,这里需要注意的是,当使用INSERT语句插入多条记录的时候,...

继续阅读

发表在 db | 标签为 | mysql 自增ID已关闭评论

mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:

使用整数数据的精确数字数据类型。

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

int

从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2...

继续阅读

发表在 db | 标签为 , | mysql中int、bigint、smallint 和 tinyint的区别与长度的含义已关闭评论

Mysql Explain 详解

Mysql Explain 详解

一.语法

explain < table_name >

例如: explain select * from t3 where id=3952602;

二.explain输出解释

+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys    &nb...

继续阅读

发表在 db | 标签为 | Mysql Explain 详解已关闭评论

MySqli 预处理

   $mysqli = new mysqli("localhost","root","root","test");
   $sql = "insert into book (bookn,bookp,booka,addr)
           values(?,?,?,?)";
   //预处理
   $stmt = $mysqli -> prepare($sql);
&nbsp... 继续阅读

发表在 db | 标签为 , | MySqli 预处理已关闭评论

mysql cursor 游标示例

create PROCEDURE ut()
begin

declare _done int default 0;
declare _id bigint;
declare _type tinyint;

declare cur cursor for select gn_number from groupnumber;
declare continue handler for not found set _done = 1;

open cur;

repeat
fetch cur into _id;
if not _done then
   select... 继续阅读

发表在 db | 标签为 , | mysql cursor 游标示例已关闭评论

mysql 5.0存储过程学习总结

一.创建存储过程

1.基本语法:

create procedure sp_name()
begin
.........
end

2.参数传递

二.调用存储过程

1.基本语法:call sp_name()
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

三.删除存储过程

1.基本语法:
drop procedure sp_name//
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

四.区块,条件,循环

1.区块定义,常用
begin
......
end;
也可以给区块起别名,如:
lable:begin
...........
...

继续阅读

发表在 db | 标签为 | mysql 5.0存储过程学习总结已关闭评论

MySQL获取某月份的天数

1、last_day(curdate());获取当月最后一天。

2、DAYOFMONTH(last_day(curdate())); 返回date 对应的该月日期。当然这就是当月的天数。

这就出来当月天数了,相当简单。

最初的时候去网上找的下面的内容。虽然逻辑上没错,但是思路有点问题,mysql那么多现成的函数没有用,浪费了。

这是在网上看到的:

MySQL 获取当前月的天数

select curdate();                &nb...

继续阅读

发表在 db | 标签为 | MySQL获取某月份的天数已关闭评论

备份mysql数据

其实你的这个问题是mysql中的一个核心问题,既mysql数据的备份和恢复
你可以使用三种方式
1.使用sql语句导入导出
2.使用mysqldump 和mysqlimport 工具
3.直接copy 数据文件 既冷备份
你说说的详细,就给积分,那我就说详细些

一.使用sql语句完成mysql的备份和恢复

你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数

据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。
语法:
SELECT * INTO {OUTFILE | DUMPFIL...

继续阅读

发表在 db | 标签为 | 备份mysql数据已关闭评论

删除MYSQl BIN-LOG 日志

1.查找当前有哪些二进制日志文件:
mysql> show binary
logs;
+------------------+-----------+
| Log_name | File_size
|
+------------------+-----------+
| mysql-bin.000001 | 1357315 |
|
mysql-bin.000002 | 117 |
| mysql-bin.000003 | 404002 |
|
mysql-bin.000004 | 2050722 |
| mysql-bin.000005 | 13... 继续阅读

发表在 db | 标签为 | 删除MYSQl BIN-LOG 日志已关闭评论

mysql与php时间格式化参数参考

为方便查阅,从官方网站上转载的。因为mysql还有php的时间格式化参数不同,不小心会搞混,这里整理一番

PHP

format character Description Example returned values
Day
d Day of the month, 2 digits with leading zeros 01 to 31
D A textual representation of a day, three letters Mon through Sun
j Day of the month without leading zeros 1 to 31
l (lowercase ‘L’) A full ...

继续阅读

发表在 db | 标签为 | mysql与php时间格式化参数参考已关闭评论

SQL里面随机选择数据行

SELECT TOP 10 OrderID, NewID() as Random
FROM Orders
ORDER BY Random  

关键在于NewID()这个函数,他生成一个随机数。

随机提取10条记录的例子:
SQL Server:
Select Top 10 * From 表 Order By NewID()

Access:
Select Top 10 * From 表 Order By Rnd(ID)  

 Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));
 int intRandomNumber = rnd.Next();
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select Top 10 * From 表 Order BY Rnd(Len(UserName))

MySql:
Select * From 表 Order By Rand() Limit 10

SQL语句真是博大精...

继续阅读

发表在 article | 标签为 , , | SQL里面随机选择数据行已关闭评论

mysql 数据类型

MySQL列类型分为3大类:数值类型、日期和时间类型、字符串类型。

 

一、数值类型

如无特别说明M 表示最大显示宽度。最大有效显示宽度是255 。显示宽度与存储大小或类型包含的值的范围无关。

定义 存储需求 数据范围 说明
无符号 有符号
BIT[(M )] (M+7)/8B     位字段类型。M 表示每个值的位数,范围为从164;M 默认值为1
TINYINT[(M )] [UNSIGNED] [ZEROFILL] 1B 0 ~255 -128 ~127 很小的整数。
BOOLBOOLEAN       TINYINT(1) 的同义词。zero 值为false...

继续阅读

发表在 db | 标签为 , | mysql 数据类型已关闭评论