“哩哩卡卡”为你分享10篇“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入门实例
,
★ 如何恢复MYSQL实体文件MYI,MYD到数据库中数据库教程
【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