- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章有关mysql优化的一些东东整理由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1.查询帮助 ? contents 2.使用合成的散列值,分离BLOB或者TEXT 3.货币使用定点数(decimal或者numberic) 4.sql_mode? 5.order by rand() limit 1000; 6.优化show status like 'Com' Com_select Com_insert等查看插入多还是查询多 7.Handler_read_key 的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用.Handler_read_rnd_next 的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引. 8.定期分析表 ANALYZE TABLE CHECK TABLE CHECKSUM TABLE 9.优化表 OPTIMIZE TABLE 10.导入大数据:Myisam ALTER TABLE tblname DISABLE KEYS loading the data ALTER TABLE tblname ENABLE KEYS; Innodb SET UNIQUE_CHECKS=0 SET AUTOCOMMIT=0 11.优化insert:LOAD DATA INFILE replace ignore 12.优化group by ORDER BY NULL 13.show status like 'Table%'; show status like 'innodb_row_lock%'; 14.CREATE TABLE innodb_monitor(a INT) ENGINE=INNODB; 15.影响Mysql 性能的重要参数: key_buffer_size : 说明:键缓存(变量key_buffer_size) 被所有线程共享;服务器使用的其它缓存则根据需要分配。此参数只适用于myisam 存储引擎。 table_cache:数据库中打开表的缓存数量。table_cache 与max_connections 有关。例如,对于200 个并行运行的连接,应该让表的缓至少有200 * N,这里N 是可以执行的查询的一个联接中表的最大数量。还需要为临时表和文件保留一些额外的文件描述符。 innodb_buffer_pool_size:缓存InnoDB 数据和索引的内存缓冲区的大小。你把这个值设得越高,访问表中数据需要得磁盘I/O 越少.
innodb_flush_log_at_trx_commit:0|1|2 innodb_additional_mem_pool_size:1M innodb_table_locks:0|1 innodb_lock_wait_timeout: innodb_support_xa:通过该参数设置是否支持分布式事务,默认值是ON 或者1,表示支持分布式事务。如果确认应用中不需要使用分布式事务,则可以关闭这个参数,减少磁盘刷新的次数并获得更好的InnoDB 性能。 innodb_doublewrite: innodb_log_buffer_size: innodb_log_file_size
1.数据库的设计 尽量把数据库设计的更小的占磁盘空间. 1).尽可能使用更小的整数类型.(mediumint就比int更合适). 2).尽可能的定义字段为not null,除非这个字段需要null.(这个规则只适合字段为KEY的情形) 3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.(CHAR 总是比VARCHR快) 4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效. 5).只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。 (这条只适合MYISAM引擎的表,对于INNODB则在保存记录的时候关系不大,因为INNODB是以事务为基础的,如果想快速保存记录的话,特别是大批量的导入记录的时候) 6).所有数据都得在保存到数据库前进行处理。 7).所有字段都得有默认值。 8).在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。 (具体的表现为:MYISAM表的MERGE类型,以及MYISAM和INNODB通用的分区,详情见手册) 9).不会用到外键约束的地方尽量不要使用外键.
2.系统的用途 1).及时的关闭对MYSQL的连接。 2).explain 复杂的SQL语句。(这样能确定你的SELECT 语句怎么优化最佳) 3).如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.(在数据庞大的时候建立INDEX) 4).LIMIT语句尽量要跟order by或者 distinct.这样可以避免做一次full table scan. 5).如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename. 不过有一个问题,truncate 不会在事务处理中回滚。因为她要调用create table 语句。 (Truncate Table 语句先删除表然后再重建,这个是属于文件级别的,所以自然快N多) 实测例子: song2为INNODB表.
6).能使用STORE PROCEDURE 或者 USER FUNCTION的时候.(ROUTINE总是减少了服务器端的开销) 7).在一条insert语句中采用多重纪录插入格式.而且使用load data infile来导入大量数据,这比单纯的indert快好多.(在MYSQL中具体表现为:INSERT INTO TABLEQ VALUES (),(),...();) (还有就是在MYISAM表中插入大量记录的时候先禁用到KEYS后面再建立KEYS,具体表现语句: ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS; 而对于INNNODB 表在插入前先 set autocommit=0;完了后:set autocommit=1;这样效率比较高。) 8).经常OPTIMIZE TABLE 来整理碎片. 9).还有就是date 类型的数据如果频繁要做比较的话尽量保存在unsigned int 类型比较快.
。
3.系统的瓶颈 1).磁盘搜索. 并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间。 2).磁盘读写(IO) 可以从多个媒介中并行的读取数据。 3).CPU周期 数据存放在主内存中.这样就得增加CPU的个数来处理这些数据。 4).内存带宽 当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈.
最后此篇关于有关mysql优化的一些东东整理的文章就讲到这里了,如果你想了解更多关于有关mysql优化的一些东东整理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
当我创建一个数据库时,我被要求选择默认排序规则,当我创建一个表时,我被要求选择排序规则。 utf8_general_ci 或...拉丁...?区分哪个是对的依据是什么? 最佳答案 A collatio
PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义
正则(regular),要使用正则表达式需要导入Python中的re(regular正则的缩写)模块。正则表达式是对字符串的处理,我们知道,字符串中有时候包含很多我们想要提取的信息,掌握这些处理字符
在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 ?
]js正则表达式基本语法(精粹): http://www.zzvips.com/article/94068.html 许多语言,包括P
1、首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mo
我更愿意在 R 中执行以下操作,但我愿意接受(易于学习的)其他解决方案。 我有多个(比如说 99 个)制表符分隔文件(我们称它们为 S1.txt 到 S99.txt)和表格,所有文件都具有完全相同的格
我制作了一个小程序,可以使用数学进行物理计算。 我有几个 if 语句,它们做同样的事情,但变量不同,但它们必须是它们,就好像 TextBox 是空的,int 将是 0。 例子如下: if (first
我正在构建需要扩展框的东西 - 这很好,我可以正常工作。然而,如果你看看这个FIDDLE你会看到它有点乱。我希望有一种方法可以扩展它们所在的盒子,这样它们就不会跳来跳去?那么盒子 3 的左侧会比右侧膨
我相当确定(在 MATLAB 中)应该有一个优雅的解决方案,但我现在想不起来。 我有一个包含 [classIndex, start, end] 的列表,我想将连续的类索引折叠成一个组,如下所示: 这个
维基百科将 XMPP 定义为: ...an open-standard communications protocol for message-oriented middleware based on
我的代码库已经进入了某种状态,希望能够摆脱它 repo 看起来有点像这样(A1、B1、C1 等显然是提交) A1 ---- A2 ---- A3 ---- A4 -
如何整理以下数据框 data.frame(a = c(1,2), values = c("[1.1, 1.2, 1.3]", "[2.1, 2.2]")) a values 1
所以我试图在 Haskell 中生成出租车号码列表。出租车号码是可以用两种不同方式写成两个不同立方体之和的数字 - 最小的是 1729 = 1^3 + 12^3 = 9^3 + 10^3 . 现在,我
我正在使用 roxygen2 来记录我正在开发的包的数据集。我知道你可以 use roxygen to document a dataset ,但是Shane's answer最终建议进行黑客攻击,虽
这个问题在这里已经有了答案: How can I combine two strings together in PHP? (19 个回答) 关闭 5 年前。 提前致歉,尽管我已经尝试并失败了几件不
我有一个大部分整洁的数据框,但有 2 列包含基准,而不是将基准合并为观察结果。我该如何整理,以便将“Facility_score”和“TTP”col_names 添加为每个独特的 FYQ 和 Metr
我有以下输入数据。每一行都是一个实验的结果: instance algo profit time x A 10 0.5 y A
我已经使用 PHP 和 MySQL 实现了搜索。目前我的表格整理是 "utf8_unicode_ci"。问题是,使用此排序规则 "ä"= "a" 是。如果我将排序规则更改为 "utf_bin" 一切正
所以我是 JS 和 Jquery 库的新手。我一直在玩弄一些东西,可以看到它非常不整洁,这就是我希望你们能帮助建议一种更好的方法来实现我想要实现的目标的地方。 目标: 要有多个复选框,其中一些如果被选
我是一名优秀的程序员,十分优秀!