InnoDBInsert(插入)操作(下)mysql技术内幕

时间:2022-04-30 01:44:15 其他范文 收藏本文 下载本文

“哩哩卡卡”为你分享10篇“InnoDBInsert(插入)操作(下)mysql技术内幕”,经本站小编整理后发布,但愿对你的工作、学习、生活带来方便。

InnoDBInsert(插入)操作(下)mysql技术内幕

篇1:InnoDBInsert(插入)操作(下)mysql技术内幕

接上一篇文章,最后做的那个实验,我是想证明mysql innodb存储引擎,commit操作与flush数据到磁盘之间的关系,当与同事交流之后,他说,你应该把innodb_buffer_size的大小考虑到里面,其实我是有考虑的,在开始的部分就有做过假设,假如buffer大小为1G,数据大小为2G,那么在进行事务插入操作时,势必是要在commit操作之前,将缓存数据进行写入磁盘的吧,

再者而言,接上篇实验,我分别进行了两组,一组是进行了rollback操作,另外一组是进行了commit,发现,rollback的操作时间远远大于commit操作的,

是否可以假象为,其实数据已经落盘,只不过在数据页面上,存在一个事务标识符,实现事务的隔离机制,对于其他session不可见。而此时rollback操作就要把数据一条一条的从磁盘中清除,这个速度肯定会比较缓慢,当然这个删除的机制,我还是不太清楚,是重新走一边buffer,还是直接消失掉;而且,在进行了rollback操作之后,数据文件大大小并没有改变,是否可以假象为,曾经分配的物理空间,并没有及时收回,以便下次重新利用。再说commit操作,它是在极短的时间内完成的,有可能的原因就是,这个操作只是把磁盘中数据页上的事务标识信息移除掉,就ok了。好吧,秉着严谨的实验态度,再来进行一次实验。(下班回去再做吧)

innodb_buffer_size= ,确保足够新插入数据的缓冲。

版权声明:本文为博主原创文章,未经博主允许不得。

篇2:MYSQL相关操作命令

最近更 新

MySQL中使用load data命令实现数据导入的

MySQL 替换某字段内部分内容的UPDATE语句

mysql免安装版的实际配置方法

mysql 优化日记

mysql通过查看跟踪日志跟踪执行的sql语句

解析MySQL中INSERT INTO SELECT的使用

MySQL的数据类型和建库策略分析详解

Windows mysql 双向同步设置方法 详细篇

MySQL转换Oracle的需要注意的七个事项

mysql 发生系统错误1067的解决方法

热 点 排 行

mysql安装图解 mysql图文安装教程

超详细mysql left join,right jo

Can''t connect to MySQL server

Mysql命令行导入sql数据

MYSQL 数据库导入导出命令

Mysql字符串截取函数SUBSTRING的

MySQL数据库备份与恢复方法

MySQL server has gone away 问题

windows下mysql忘记root密码的解

MySQL日期数据类型、时间类型使用

篇3:linux下安装Mysql步骤详解linux操作系统

以 Red Hat Enterprise Linux AS 4.0 中安装 MySql 的步骤大致如下:

下载 MySQL:

从http://dev.mysql.com/downloads/mysql/5.0.html

下载 Red Hat Enterprise Linux 4 RPM (x86) :MySQL-server-standard-5.0.27-0.rhel4.i386.rpm

安装MySQL:

代码如下复制代码rpm -ivh MySQL-server-standard-5.0.27-0.rhel4.i386.rpm --nodeps --force

根据需要修改 /etc/my.cnf,参考配置:

代码如下复制代码[mysqld]

# 设置默认为 INNODB 表,支持事务,支持行锁:

default-storage-engine=INNODB

# 设置默认的字符集:

default-character-set=utf8

# 客户机通信所使用的缓冲区大小的最大值

max_allowed_packet=16M

启动 MySQL:

代码如下复制代码service mysql start

/etc/init.d/mysql start

/usr/share/mysql/mysql.server start

[mysql.server]

代码如下复制代码# 注释掉 basedir 行,否则 MySql 可能不能启动

# 据说是 MySql 的 bug

# basedir=/var/lib

让MySQL系统启动时自动启动:

在 系统设置>服务器设置>服务 中把 MySql 打勾

root登录时,自动启动mysql:

在 /root/.bash_profile 文件中增加1行:

代码如下复制代码/usr/share/mysql/mysql.server start

查看启动日志:

代码如下复制代码/var/log/messages

显示MySQL所有用户:

代码如下复制代码use mysql;

select host,user,password from user;

添加 MySQL 用户(user name:user1,password:sql):

代码如下复制代码grant all on *.* to user1@'%' identified by 'sql' with grant option;

删除 MySQL 用户:

代码如下复制代码delete from user where user='user1';

篇4:Python操作MySQL简单实现方法

这篇文章主要介绍了Python操作MySQL简单实现方法,通过一个简单的实例讲述了Python针对mysql数据库的增删改查技巧,需要的朋友可以参考下

一、安装:

安装MySQL

安装MySQL不用多说了,下载下来安装就是,没有特别需要注意的地方。

一个下载地址:点击打开链接

二、示例:

代码如下:

# coding=utf-8

import MySQLdb

#查询数量

def Count(cur):

count=cur.execute(‘select * from Student‘)

print ‘there has %s rows record‘ % count

#插入

def Insert(cur):

sql = “insert into Student(ID,Name,Age,Sex)values(%s,%s,%s,%s)”

param = (2,‘xiaoming‘,24,‘boy‘)

cur.execute(sql,param)

#查询

def Select(cur):

n = cur.execute(“select * from Student”)

print “------”

for row in cur.fetchall:

for r in row:

print r

print “------”

#更新

def Update(cur):

sql = “update Student set Name = %s where ID = 2”

param = (“xiaoxue”)

count = cur.execute(sql,param)

#删除

def Delete(cur):

sql = “delete from Student where Name = %s”

param =(“xiaoxue”)

n = cur.execute(sql,param)

try:

conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123456‘,db=‘python‘,port=3306)

cur=conn.cursor()

#数量

Count(cur)

#查询

Select(cur)

#插入

Insert(cur)

print “插入之后”

#查询

Select(cur)

#更新

Update(cur)

print “更新之后”

#查询

Select(cur)

#删除

Delete(cur)

print “删除之后”

#查询

Select(cur)

cur.close()

conn.close()

except MySQLdb.Error,e:

print “Mysql Error %d: %s” % (e.args[0], e.args[1])

希望本文所述对大家的Python程序设计有所帮助,

篇5:Linux学习笔记(MySql操作)

忘记MySql密码:

编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant

重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot

修改相应用户密码 use mysql;

update user setpassword=password('密码') where user='root';

flushprivileges; (刷新)

最后修改/etc/my.cnf 去掉 skip-grant, 重启mysql服务

查看root用户:

mysql -uroot -p密码-e “use mysql;select user,host from user where user='root';”

mysq的命令历史:/root/.mysql_history

这样不安全,先删除这个文件,然后指向黑洞,就不会产生命令历史了

mysql:

-h:加ip

-S:可以使用指定的sock文件

-P:加端口号

-u:加用户名

-p:加密码

show databases;:显示数据库

use database;:选择数据库

show tables;:查看数据库中的表

查看都有哪些库 show databases;

查看某个库的表 use db; show tables;

查看表的字段 desc tb;

查看建表语句 show create table tb;

当前是哪个用户 select user();

当前库 select database();

创建库 create database db1;

创建表 create table t1 (`id`int(4), `name` char(40));

查看数据库版本 select version();

查看mysql状态 show status;

修改mysql参数

show variables like '%timeout%';

set global table_open_cache= 128;

查看mysql队列

showprocesslist; (相当于ps)

创建普通用户并授权

grant all on *.* to user identified by '密码';

grant all on db1.* to 'user'@'10.0.2.100' identified by '密码';

grant all on db1.* to 'user3'@'%' identified by '密码';

更改密码

UPDATE mysql.user SET password=PASSWORD(“newpwd”)WHERE user='username' ;

查询

select count(*) from mysql.user;

select * from mysql.db;

select * from mysql.db where host like '10.0.%';

插入

update db1.t1 set name='*****' where id=1;

清空表

truncate table db1.t1;

删除表

drop table db1.t1;

删除数据库

drop database db1;

修复表

repair table tb1 [use_frm];(通过/data/www/数据库名/这个文件下面的文件修复)

mysql的备份和恢复:

备份 mysqldump -uroot -p db > 1.sql

-d:只是备份创建表的语句

恢复 mysql -uroot -p db < 1.sql

只备份一个表 mysqldump -uroot -p dbtb1 > 2.sql

备份时指定字符集mysqldump -uroot -p --default-character-set=utf8 db > 1.sql

恢复也指定字符集 mysql -uroot -p --default-character-set=utf8 db < 1.sql

篇6:python学习之操作mysql

刚开始学python,所以很多代码都需要在ipython里尝试一下,今天记录的是最基本的操作mysql数据库。

写数据库连接操作的时候,仿佛回到了当年在前两家公司写asp.net的感觉。

1.首先在mysql数据库里新建个数据库

create database db_02 default charset utf8;

create table user (id int auto_increment primary key,username char(20),email char(20));

2.开始写python代码

import MySQLdb

conn = MySQLdb.connect(user=’root’,host=’localhost’,passwd=”)

conn.select_db(‘db_02′)

cursor =conn.cursor

sql = ‘insert into user(name,email) values(“andy”,”andy@163.com”)’

cursor.execute(sql)

————————————————

cursor.execute(‘insert into user(name,email) values(“andy”,”andy@163.com”)’)

查看:

In [14]: sql=’select * from user’

In [15]: cur.execute(sql)

Out[15]: 2L

In [16]: cur.fetchone()

Out[16]: (1L, ‘andy’, ‘andy@163.com’, None)

In [17]: cur.fetchone()

Out[17]: (2L, ‘andy’, ‘andy@163.com’, None)

In [19]: cur.execute(sql)

Out[19]: 2L

In [20]: cur.fetchall()

Out[20]: ((1L, ‘andy’, ‘andy@163.com’, None), (2L, ‘andy’, ‘andy@163.com’, None))

最后是

cursor.close()

conn.close()

写到这里认为万事大吉喽,去mysql里一看发现数据没进来,找了原因才知道这是与表的类型有关,

mysql> show create table user;

+——-+————————————————————————————–

| Table | Create Table

+——-+————————————————————————————–

| user | CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

`email` char(20) NOT NULL,

`password` char(200) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 |

+——-+————————————————————————————–

因为用的是InnoDB,不是MyISAM, MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。MyISAM的读性能是比Innodb强不少的.

所以只要加上一句conn.commit(),数据库里就可以看到记录了

原文来自:http://www.iwangzheng.com/?p=257

篇7:linux下卸载mysql

linux卸载mysql

卸载mysql

1、查找以前是否装有mysql

命令:rpm -qa|grep -i mysql

可以看到mysql的两个包:

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

2、删除mysql

删除命令:rpm -e --nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

3、删除老版本mysql的开发头文件和库

命令:rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

篇8:linux下perl操作mysql数据库(需要安装DBI)

-05-05MySQL行级锁、表级锁、页级锁详细介绍

2014-04-04mysql双向加密解密方式用法详解

-05-05MySQL服务器默认安装之后调节性能的方法

-04-04使用java处理字符串公式运算的方法

2014-02-02MySQL的Replace into 与Insert into on duplicate key update真正

-10-10mysqldump造成Buffer Pool污染的研究

2014-04-04mysql存储过程实例

-12-12MySQL replace函数替换字符串语句的用法

2014-01-01Mysql的longblob字段插入数据问题解决

2012-09-09解决mysql 1040错误Too many connections的方法

篇9:linux下perl操作mysql数据库(需要安装DBI)

最近更 新

在Win下mysql备份恢复命令

MySQL的表分区详解

mysql数据库sql优化原则(经验总结)

MySQL InnoDB之事务与锁详解

MySQL中Stmt 预处理提高效率问题的小研究

php后台经常提示无法连接mysql 刷新后又可

MYSQL SET类型字段的SQL操作知识介绍

解析MySQL中mysqldump工具的基本用法

MySQL单表ibd文件恢复方法详解

在MySQL中用正则表达式替换数据库中的内容

热 点 排 行

mysql安装图解 mysql图文安装教程

超详细mysql left join,right jo

Can''t connect to MySQL server

Mysql命令行导入sql数据

MYSQL 数据库导入导出命令

Mysql字符串截取函数SUBSTRING的

MySQL数据库备份与恢复方法

MySQL server has gone away 问题

windows下mysql忘记root密码的解

MySQL日期数据类型、时间类型使用

篇10:Python中操作MySQL入门实例

这篇文章主要介绍了Python中操作MySQL入门实例,本文讲解了安装、打开数据库连接、插入数据、查询数据、删除数据等操作,需要的朋友可以参考下

一、安装MySQL-python

代码如下:

# yum install -y MySQL-python

二、打开数据库连接

代码如下:

#!/usr/bin/python

import MySQLdb

conn = MySQLdb.connect(user=‘root‘,passwd=‘admin‘,host=‘127.0.0.1‘)

conn.select_db(‘test‘)

cur = conn.cursor()

三、操作数据库

代码如下:

def insertdb():

sql = ‘insert into test(name,`sort`) values (“%s”,“%s”)‘

exsql = sql % (‘hello‘,‘python‘)

cur.execute(exsql)

conn.commit()

return ‘insert success‘

def selectdb():

sql = ‘select `name` from test where `sort` = “%s”‘

exsql = sql % (‘python‘)

count = cur.execute(exsql)

for row in cur:

print row

print ‘cursor move to top:‘

cur.scroll(0,‘absolute‘)

row = cur.fetchone()

while row is not None:

print row

row = cur.fetchone()

print ‘cursor move to top:‘

cur.scroll(0,‘absolute‘)

many = cur.fetchmany(count)

print many

def deletedb():

sql = ‘delete from test where `sort` = “%s”‘

exsql = sql % (‘python‘)

cur.execute(exsql)

conn.commit()

return ‘delete success‘

print insertdb()

print insertdb()

selectdb()

print deletedb()

四、关闭连接

代码如下:

cur.close()

conn.close()

注意顺序,

Python中操作MySQL入门实例

Java开发毕业论文参考文献

如何才能有效的学习erp系统

Oracle深入学习

拼音处理数据库教程

小技巧:用批处理对MySQL进行数据操作数据库教程

nosql数据库 tiger

MySQL文件系统先睹为快数据库

跟踪标记全攻略数据库教程

如何保护MySQL 中的重要数据

如何恢复MYSQL实体文件MYI,MYD到数据库中数据库教程

InnoDBInsert(插入)操作(下)mysql技术内幕
《InnoDBInsert(插入)操作(下)mysql技术内幕.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【InnoDBInsert(插入)操作(下)mysql技术内幕(精选10篇)】相关文章:

Perl 脚本的特点数据库教程2022-09-28

PHP笔试题目及答案2023-09-04

Coredraw表格导入终极解决方案2023-05-10

关于精选php面试题及答案2022-05-14

CAD 教程:曲面命令创建楼房2023-04-16

确保PHP应用程序的安全[2]WEB安全2022-04-30

Excel服务器教程2023-10-20

FLASHFlash+php+mysql简单留言本制作2022-05-06

securytas.ro sql 注入2022-05-07

seo面试题与答案2023-02-15

点击下载本文文档