易语言mysql模块查找记录 增加记录 修改记录 读取记录

mysql(21)
将mysql中的操作记录下来:
mysql& tee d:\mysql.txt
下面是数据库的增删查改:
mysql& create database day01;
Query OK, 1 row affected (0.00 sec)
+--------------------+
| Database&&&&&&&&&& |
+--------------------+
| information_schema |
| day01&&&&&&&&&&&&& |
| mysql&&&&&&&&&&&&& |
| performance_schema |
| test&&&&&&&&&&&&&& |
+--------------------+
5 rows in set (0.00 sec)
mysql& create database day02
&&& -& character set utf8
&&& -& collate utf8_general_
Query OK, 1 row affected (0.00 sec)
ERROR ): You have an error in your SQL check the manual that corresponds to your MySQL server version for the
right syntax to use near '' at line 1
ERROR ): You have an error in your SQL check the manual that corresponds to your MySQL server version for the
right syntax to use near 'created database' at line 1
mysql& show create database day01;
+----------+----------------------------------------------------------------+
| Database | Create Database&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& |
+----------+----------------------------------------------------------------+
| day01&&& | CREATE DATABASE `day01` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql& alter database day01
&&& -& character set gbk
&&& -& collate gbk_chinese_
Query OK, 1 row affected (0.00 sec)
mysql& show create database day01;
+----------+---------------------------------------------------------------+
| Database | Create Database&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& |
+----------+---------------------------------------------------------------+
| day01&&& | CREATE DATABASE `day01` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
+--------------------+
| Database&&&&&&&&&& |
+--------------------+
| information_schema |
| day01&&&&&&&&&&&&& |
| day02&&&&&&&&&&&&& |
| mysql&&&&&&&&&&&&& |
| performance_schema |
| test&&&&&&&&&&&&&& |
+--------------------+
6 rows in set (0.00 sec)
mysql& drop database day02;
Query OK, 0 rows affected (0.05 sec)
+--------------------+
| Database&&&&&&&&&& |
+--------------------+
| information_schema |
| day01&&&&&&&&&&&&& |
| mysql&&&&&&&&&&&&& |
| performance_schema |
| test&&&&&&&&&&&&&& |
+--------------------+
5 rows in set (0.00 sec)
+----------+-----------------------------+---------------------+--------+
| Charset& | Description&&&&&&&&&&&&&&&& | Default collation&& | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5&&&& | Big5 Traditional Chinese&&& | big5_chinese_ci&&&& |&&&&& 2 |
| dec8&&&& | DEC West European&&&&&&&&&& | dec8_swedish_ci&&&& |&&&&& 1 |
| cp850&&& | DOS West European&&&&&&&&&& | cp850_general_ci&&& |&&&&& 1 |
| hp8&&&&& | HP West European&&&&&&&&&&& | hp8_english_ci&&&&& |&&&&& 1 |
| koi8r&&& | KOI8-R Relcom Russian&&&&&& | koi8r_general_ci&&& |&&&&& 1 |
| latin1&& | cp1252 West European&&&&&&& | latin1_swedish_ci&& |&&&&& 1 |
| latin2&& | ISO 8859-2 Central European | latin2_general_ci&& |&&&&& 1 |
| swe7&&&& | 7bit Swedish&&&&&&&&&&&&&&& | swe7_swedish_ci&&&& |&&&&& 1 |
| ascii&&& | US ASCII&&&&&&&&&&&&&&&&&&& | ascii_general_ci&&& |&&&&& 1 |
| ujis&&&& | EUC-JP Japanese&&&&&&&&&&&& | ujis_japanese_ci&&& |&&&&& 3 |
| sjis&&&& | Shift-JIS Japanese&&&&&&&&& | sjis_japanese_ci&&& |&&&&& 2 |
| hebrew&& | ISO 8859-8 Hebrew&&&&&&&&&& | hebrew_general_ci&& |&&&&& 1 |
| tis620&& | TIS620 Thai&&&&&&&&&&&&&&&& | tis620_thai_ci&&&&& |&&&&& 1 |
| euckr&&& | EUC-KR Korean&&&&&&&&&&&&&& | euckr_korean_ci&&&& |&&&&& 2 |
| koi8u&&& | KOI8-U Ukrainian&&&&&&&&&&& | koi8u_general_ci&&& |&&&&& 1 |
| gb2312&& | GB2312 Simplified Chinese&& | gb2312_chinese_ci&& |&&&&& 2 |
| greek&&& | ISO 8859-7 Greek&&&&&&&&&&& | greek_general_ci&&& |&&&&& 1 |
| cp1250&& | Windows Central European&&& | cp1250_general_ci&& |&&&&& 1 |
| gbk&&&&& | GBK Simplified Chinese&&&&& | gbk_chinese_ci&&&&& |&&&&& 2 |
| latin5&& | ISO 8859-9 Turkish&&&&&&&&& | latin5_turkish_ci&& |&&&&& 1 |
| armscii8 | ARMSCII-8 Armenian&&&&&&&&& | armscii8_general_ci |&&&&& 1 |
| utf8&&&& | UTF-8 Unicode&&&&&&&&&&&&&& | utf8_general_ci&&&& |&&&&& 3 |
| ucs2&&&& | UCS-2 Unicode&&&&&&&&&&&&&& | ucs2_general_ci&&&& |&&&&& 2 |
| cp866&&& | DOS Russian&&&&&&&&&&&&&&&& | cp866_general_ci&&& |&&&&& 1 |
| keybcs2& | DOS Kamenicky Czech-Slovak& | keybcs2_general_ci& |&&&&& 1 |
| macce&&& | Mac Central European&&&&&&& | macce_general_ci&&& |&&&&& 1 |
| macroman | Mac West European&&&&&&&&&& | macroman_general_ci |&&&&& 1 |
| cp852&&& | DOS Central European&&&&&&& | cp852_general_ci&&& |&&&&& 1 |
| latin7&& | ISO 8859-13 Baltic&&&&&&&&& | latin7_general_ci&& |&&&&& 1 |
| utf8mb4& | UTF-8 Unicode&&&&&&&&&&&&&& | utf8mb4_general_ci& |&&&&& 4 |
| cp1251&& | Windows Cyrillic&&&&&&&&&&& | cp1251_general_ci&& |&&&&& 1 |
| utf16&&& | UTF-16 Unicode&&&&&&&&&&&&& | utf16_general_ci&&& |&&&&& 4 |
| cp1256&& | Windows Arabic&&&&&&&&&&&&& | cp1256_general_ci&& |&&&&& 1 |
| cp1257&& | Windows Baltic&&&&&&&&&&&&& | cp1257_general_ci&& |&&&&& 1 |
| utf32&&& | UTF-32 Unicode&&&&&&&&&&&&& | utf32_general_ci&&& |&&&&& 4 |
| binary&& | Binary pseudo charset&&&&&& | binary&&&&&&&&&&&&& |&&&&& 1 |
| geostd8& | GEOSTD8 Georgian&&&&&&&&&&& | geostd8_general_ci& |&&&&& 1 |
| cp932&&& | SJIS for Windows Japanese&& | cp932_japanese_ci&& |&&&&& 2 |
| eucjpms& | UJIS for Windows Japanese&& | eucjpms_japanese_ci |&&&&& 3 |
+----------+-----------------------------+---------------------+--------+
39 rows in set (0.00 sec)
mysql& use day01;
Database changed
+----------+-----------------------------+---------------------+--------+
| Charset& | Description&&&&&&&&&&&&&&&& | Default collation&& | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5&&&& | Big5 Traditional Chinese&&& | big5_chinese_ci&&&& |&&&&& 2 |
| dec8&&&& | DEC West European&&&&&&&&&& | dec8_swedish_ci&&&& |&&&&& 1 |
| cp850&&& | DOS West European&&&&&&&&&& | cp850_general_ci&&& |&&&&& 1 |
| hp8&&&&& | HP West European&&&&&&&&&&& | hp8_english_ci&&&&& |&&&&& 1 |
| koi8r&&& | KOI8-R Relcom Russian&&&&&& | koi8r_general_ci&&& |&&&&& 1 |
| latin1&& | cp1252 West European&&&&&&& | latin1_swedish_ci&& |&&&&& 1 |
| latin2&& | ISO 8859-2 Central European | latin2_general_ci&& |&&&&& 1 |
| swe7&&&& | 7bit Swedish&&&&&&&&&&&&&&& | swe7_swedish_ci&&&& |&&&&& 1 |
| ascii&&& | US ASCII&&&&&&&&&&&&&&&&&&& | ascii_general_ci&&& |&&&&& 1 |
| ujis&&&& | EUC-JP Japanese&&&&&&&&&&&& | ujis_japanese_ci&&& |&&&&& 3 |
| sjis&&&& | Shift-JIS Japanese&&&&&&&&& | sjis_japanese_ci&&& |&&&&& 2 |
| hebrew&& | ISO 8859-8 Hebrew&&&&&&&&&& | hebrew_general_ci&& |&&&&& 1 |
| tis620&& | TIS620 Thai&&&&&&&&&&&&&&&& | tis620_thai_ci&&&&& |&&&&& 1 |
| euckr&&& | EUC-KR Korean&&&&&&&&&&&&&& | euckr_korean_ci&&&& |&&&&& 2 |
| koi8u&&& | KOI8-U Ukrainian&&&&&&&&&&& | koi8u_general_ci&&& |&&&&& 1 |
| gb2312&& | GB2312 Simplified Chinese&& | gb2312_chinese_ci&& |&&&&& 2 |
| greek&&& | ISO 8859-7 Greek&&&&&&&&&&& | greek_general_ci&&& |&&&&& 1 |
| cp1250&& | Windows Central European&&& | cp1250_general_ci&& |&&&&& 1 |
| gbk&&&&& | GBK Simplified Chinese&&&&& | gbk_chinese_ci&&&&& |&&&&& 2 |
| latin5&& | ISO 8859-9 Turkish&&&&&&&&& | latin5_turkish_ci&& |&&&&& 1 |
| armscii8 | ARMSCII-8 Armenian&&&&&&&&& | armscii8_general_ci |&&&&& 1 |
| utf8&&&& | UTF-8 Unicode&&&&&&&&&&&&&& | utf8_general_ci&&&& |&&&&& 3 |
| ucs2&&&& | UCS-2 Unicode&&&&&&&&&&&&&& | ucs2_general_ci&&&& |&&&&& 2 |
| cp866&&& | DOS Russian&&&&&&&&&&&&&&&& | cp866_general_ci&&& |&&&&& 1 |
| keybcs2& | DOS Kamenicky Czech-Slovak& | keybcs2_general_ci& |&&&&& 1 |
| macce&&& | Mac Central European&&&&&&& | macce_general_ci&&& |&&&&& 1 |
| macroman | Mac West European&&&&&&&&&& | macroman_general_ci |&&&&& 1 |
| cp852&&& | DOS Central European&&&&&&& | cp852_general_ci&&& |&&&&& 1 |
| latin7&& | ISO 8859-13 Baltic&&&&&&&&& | latin7_general_ci&& |&&&&& 1 |
| utf8mb4& | UTF-8 Unicode&&&&&&&&&&&&&& | utf8mb4_general_ci& |&&&&& 4 |
| cp1251&& | Windows Cyrillic&&&&&&&&&&& | cp1251_general_ci&& |&&&&& 1 |
| utf16&&& | UTF-16 Unicode&&&&&&&&&&&&& | utf16_general_ci&&& |&&&&& 4 |
| cp1256&& | Windows Arabic&&&&&&&&&&&&& | cp1256_general_ci&& |&&&&& 1 |
| cp1257&& | Windows Baltic&&&&&&&&&&&&& | cp1257_general_ci&& |&&&&& 1 |
| utf32&&& | UTF-32 Unicode&&&&&&&&&&&&& | utf32_general_ci&&& |&&&&& 4 |
| binary&& | Binary pseudo charset&&&&&& | binary&&&&&&&&&&&&& |&&&&& 1 |
| geostd8& | GEOSTD8 Georgian&&&&&&&&&&& | geostd8_general_ci& |&&&&& 1 |
| cp932&&& | SJIS for Windows Japanese&& | cp932_japanese_ci&& |&&&&& 2 |
| eucjpms& | UJIS for Windows Japanese&& | eucjpms_japanese_ci |&&&&& 3 |
+----------+-----------------------------+---------------------+--------+
39 rows in set (0.00 sec)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:48930次
积分:1485
积分:1485
排名:千里之外
原创:104篇
(5)(1)(4)(4)(17)(3)(5)(3)(12)(19)(32)MYSQL 查询、读取、修改、删除 操作工具|易语言俱乐部 - 易语言俱乐部 - Powered by phpwind
查看完整版本: [--
&Pages: ( 4 total )
MYSQL 查询、读取、修改、删除 操作工具
如题。看图。记得要给铜板或。没钱。嘻嘻。&&不是原创搞我人,不给钱搞你人。[attachment=134197][attachment=134198][attachment=134199][attachment=134200]下载点这里: [attachment=134201] 要给钱呀。5
破例顶一次 ^_^
广告位招租&&^_^&&&&&&&&&&&&&&&&&&^_^&&&&&&&&&&&&&&&&^_^
我正想研究一下MYSQL,哈哈,不错啊
没钱,想要也不能
谢谢分享,加油!
路过帮你顶
只要是开源的一定要支持!!
还没学sql数据库,收藏备用。
好东西,支持一个。
支持```````还没用到,先收藏````````
谢谢楼主分享
如题。看图。记得要给铜板或。没钱。嘻嘻。&&不是原创搞我人,不给钱搞你人。
1858枚铜币讲没钱,顶你,赚一枚,呵呵
引用 引用第1楼mzlzb于 22:51发表的&&:破例顶一次 ^_^
顶起哦。。。。。。。。
需要研究下
下一个看看
太有用了 呵呵帅 啊
强烈支持,这么好的东西。
不用这么狠吧,还是顶你一下
这是一个在现在在深圳没有工作的高手写的。。你们有谁帮他找一份工作啊
好东西&&学习下里面的内容
支持。。。谢谢了。
只要是开源的一定要支持!!
顶,支持开源..
好东西,好材料
不错啊!~!~看看先啊
&&&&&&&&&&
用户被禁言,该主题自动屏蔽!
顶你一下权当给钱
这个确实不错,谢谢分享
使用的方法如何呀慢慢看
我顶&&太强大了
结果是:人搞人!
虽然不用还是顶你了!
谢谢分享,加油!
大家这么支持。搞的我想把最新版被华军,天空收录的源码发布给大家了。哎。顶起来。小生发布最新版全套源码。!
好东东,再顶一下
这可是一个比较大的源了,支持!
你们那么多钱拉我就不给了...&&
查看完整版本: [--
Powered by
Gzip enabled&&所属分类 &&
&MySql操作 取记录集是易语言MySQL支持库的MySql操作命令,该命令得到查询后的记录的集合(简称:记录集)。返回记录集句柄。当使用完记录集后要通过“释放记录集”命令来释放记录集。英文名称:store_result操作系统需求: Windows、Linux
“MySql操作 取记录集”调用格式
&〈整数型〉 取记录集 (参数&1&)&&&
“MySql操作 取记录集”命令解释
参数位置参数名类 型必要性描&&述参数&1&MySql句柄整数型必需的本参数必须是本进程调用“连接MySql”命令得到的返回值。
“MySql操作 取记录集”命令例程
&.版本 2.支持库 mysql.版本 2.支持库 mysql.程序集 窗口程序集1.程序集变量 记录, 整数型.程序集变量 句柄, 整数型.子程序 _按钮1_被单击.如果真 (组合框1.现行选中项 ≠ -1)&&& 句柄 = 连接MySql (, “root”, , “test”, )&&& .如果 (句柄 ≠ 0)&&&&&&& .如果 (增加记录 (句柄, “table1”, “name='” + 组合框1.取项目文本 (组合框1.现行选中项) + “'”))&&&&&&&&&&& 信息框 (“添加成功”, 0, )&&&&&&& .否则&&&&&&&&&&& 信息框 (“添加失败”, 0, )&&&&&&& .如果结束&&& .否则&&& .如果结束&&& 断开MySql (句柄).如果真结束.子程序 _按钮2_被单击.局部变量 名, 文本型.如果 (记录 ≠ 0)&&& .如果 (读字段值 (记录, “name”, 名))&&&&&&& 标签1.标题 = 名&&&&&&& 到下一行 (记录)&&& .否则&&&&&&& 标签1.标题 = “未取到”&&& .如果结束.否则&&& 信息框 (“取记录集出错”, 0, ).如果结束&.子程序 __启动窗口_创建完毕句柄 = 连接MySql (, “root”, , “test”, )执行SQL语句 (句柄, “select * from table1”)& ' 只有此语句执行成功时取记录集子程序才会得到不为零的记录集句柄记录 = 取记录集 (句柄)
下载次数:0
→如果您认为本文档还有待完善,请
文档内容不一定完整、准确,如果您有更完善的内容解释,可以对本文档进行编辑,使其更加完善,从而使更多易友受益。 因为有你,易更精彩!
超级管理员
文档创建者
最近编辑者
浏览次数: 2839 次
编辑次数: 2次mysql数据库插入速度和读取速度的调整记录
mysql数据库插入速度和读取速度的调整记录
由于项目变态需求;需要在一个比较短时间段急剧增加数据库记录(两三天内,由于0增加至4亿)。在整个过程调优过程非常艰辛
(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
every second, but do nothing at transaction commit.
1:the log buffer is written out to the log file at each transaction
commit and the flush to disk operation is performed on the log
2:the log buffer is written out to the file at each commit, but the
flush to disk operation is not performed on it
2)将 innodb_autoextend_increment 配置由于默认8M 调整到 128M
此配置项作用主要是当tablespace 空间已经满了后,需要MySQL系统需要自动扩展多少空间,每次tablespace
扩展都会让各个SQL 处于等待状态。增加自动扩展Size可以减少tablespace自动扩展次数。
3)将 innodb_log_buffer_size 配置由于默认1M 调整到 16M
此配置项作用设定innodb 数据库引擎写日志缓存区;将此缓存段增大可以减少数据库写数据文件次数。
4)将 innodb_log_file_size 配置由于默认 8M 调整到 128M
此配置项作用设定innodb 数据库引擎UNDO日志的大小;从而减少数据库checkpoint操作。
经 过以上调整,系统插入速度由于原来10分钟几万条提升至1秒1W左右;注:以上参数调整,需要根据不同机器来进行实际调整。特别是
innodb_flush_log_at_trx_commit、innodb_log_buffer_size和
innodb_log_file_size 需要谨慎调整;因为涉及MySQL本身的容灾处理。
(2)提升数据库读取速度,重数据库层面上读取速度提升主要由于几点:简化SQL、加索引和分区;
经过检查程序SQL已经是最简单,查询条件上已经增加索引。我们只能用武器:表分区。
数据库 MySQL分区前准备:在MySQL中,表空间就是存储数据和索引的数据文件。
将S11数据库由于同享tablespace 修改为支持多个
将wb_user_info_sina 和 wb_user_info_tx
两个表修改为各自独立表空间;(Sina:1700W数据,2.6G 大数据文件,Tencent
1400W,2.3G大数据文件);
分区操作:
将现有的主键和索引先删除
重现建立id,uid 的联合主键
再 以 uid 为键值进行分区。这时候到/var/data/mysql
查看数据文件,可以看到两个大表各自独立表空间已经分割成若干个较少独立分区空间。(这时候若以uid
为检索条件进行查询,并不提升速度;因为键值只是安排数据存储的分区并不会建立分区索引。我非常郁闷这点比Oracle
差得不是一点半点。)
再以 uid 字段上进行建立索引。再次到/var/data/mysql
文件夹查看数据文件,非常郁闷地发现各个分区Size竟然大了。MySQL还是老样子将索引与数据存储在同一个tablespace里面。若能index
与 数据分离能够更加好管理。
经过以上调整,暂时没能体现出系统读取速度提升;基本都是在 2~3秒完成5K数据更新。
MySQL数据库插入速度调整补充资料:
MySQL 从最开始的时候 1000条/分钟的插入速度调高至 10000条/秒。
相信大家都已经等急了相关介绍,下面我做调优时候的整个过程。提高数据库插入性能中心思想:
1、尽量使数据库一次性写入Data File
2、减少数据库的checkpoint 操作
3、程序上尽量缓冲数据,进行批量式插入与提交
4、减少系统的IO冲突
根据以上四点内容,作为一个业余DBA对MySQL服务进行了下面调整:
修 改负责收录记录MySQL服务器配置,提升MySQL整体写速度;具体为下面三个数据库变量
值:innodb_autoextend_increment、innodb_log_buffer_size、
innodb_log_file_size;此三个变量默认值分别为
5M、8M、8M,根据服务器内存大小与具体使用情况,将此三只分别修改为:128M、16M、128M。同时,也将原来2个 Log
File 变更为 8 个Log
File。此次修改主要满足第一和第二点,如:增加innodb_autoextend_increment就是为了避免由于频繁自动扩展Data
File而导致 MySQL 的checkpoint 操作;
将大表转变为独立表空并且进行分区,然后将不同分区下挂在多个不同硬盘阵列中。
完成了以上修改操作后;我看到下面幸福结果:
获取测试结果:
Query OK, 2500000 rows affected (4 min 4.85 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (4 min 58.89 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (5 min 25.91 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (5 min 22.32 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
最后表的数据量:
+------------+
| count(*) |
+------------+
+------------+
从上面结果来看,数据量增加会对插入性能有一定影响。不过,整体速度还是非常面议。一天不到时间,就可以完成4亿数据正常处理。预计数据库瓶颈已经被巧妙解决
MySQL写入插入数据优化配置-mysql教程
&&& 文章重点介绍mysql写入优化,这里针对mysql的Innodb与MyISAM存储引擎来进行解说,希望文章来给大家带来帮助哦。
*innodb_buffer_pool_size
如果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer
size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了。
Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存的70%-80%。和
key_buffer相同,如果数据量比较小也不怎么增加,那么不要把这个值设太高也可以提高内存的使用率
*innodb_additional_pool_size
这个的效果不是很明显,至少是当操作系统能合理分配内存时。但你可能仍需要设成20M或更多一点以看Innodb会分配多少内存做其他用途
*innodb_log_file_size
对于写很多尤其是大数据量时非常重要。要注意,大的文件提供更高的性能,但恢复时会用更多的时间。我一般用64M-512M,具体取决于服务器的空间
*innodb_log_buffer_size
默认值对于多数中等写操作和事务短的运用都是可以的。如果经常做更新或者使用了很多blob数据,应该增大这个值。但太大了也是浪费内存,因为1秒钟总会
flush(这个词的中文怎么说呢?)一次,所以不需要设到超过1秒的需求。8M-16M一般应该够了。小的运用可以设更小一点
innodb_flush_log_at_trx_commit (这个很管用
抱怨Innodb比MyISAM慢
100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电
池供电缓存(Battery backed up
cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬
盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统
挂了时才可能丢数据。
上面是网上看的,我发现慢查询日志内有很多update和insert的查询,就把innodb_flush_log_at_trx_commit改成了2,效果很明显,改成0会更明显,但安全性比较差。做下面的操作启动mysqld就生效
innodb_flush_log_at_trx_commit=2
也可以在mysqld运行时执行
set GLOBAL innodb_flush_log_at_trx_commit = 2
下面是mysql手册上innodb_flush_log_at_trx_commit的解释
如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log
file中,并且log file的flush(刷到磁盘)操作同时进行;但是,这种模式下,在事务提交的时候,不会有任何动作。如果
innodb_flush_log_at_trx_commit设置为1(默认值),log buffer每次事务提交都会写入log
file,并且,flush刷到磁盘中去。如果innodb_flush_log_at_trx_commit设置为2,log
buffer在每次事务提交的时候都会写入log
file,但是,flush(刷到磁盘)操作并不会同时进行。这种模式下,MySQL会每秒一次地去做flush(刷到磁盘)操作。注意:由于进程调度策
略问题,这个“每秒一次的flush(刷到磁盘)操作”并不是保证100%的“每秒”
默认值1是为了ACID (atomicity, consistency, isolation,
durability)原子性,一致性,隔离性和持久化的考虑。如果你不把innodb_flush_log_at_trx_commit设置为1,你将获得更好的性能,但是,你在系统崩溃的情况,可能会丢失最多一秒钟的事务数据。当你把innodb_flush_log_at_trx_commit设置
为0,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。如果你把innodb_flush_log_at_trx_commit设置为2,只有在操作系统崩溃或者系统掉电的情况下,上一秒钟所有事务数据才可能丢失。InnoDB的crash
recovery崩溃恢复机制并不受这个值的影响,不管这个值设置为多少,crash recovery崩溃恢复机制都会工作。
另外innodb_flush_method参数也值得关注,对写操作有影响
innodb_flush_method: 设置InnoDB同步IO的方式
1) Default & 使用fsync()
2) O_SYNC 以sync模式打开文件,通常比较慢
3) O_DIRECT,在Linux上使用Direct
IO。可以显著提高速度,特别是在RAID系统上。避免额外的数据复制和double buffering(mysql buffering
和OS buffering)。
已投稿到:}

我要回帖

更多关于 易语言mysql教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信