mysql调优
http://hi.baidu.com/xuwanbest/blog/item/193fd93dda509303bba167e3.html
http://wangdei.javaeye.com/blog/214265
关于 MySQL 调优
有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为:
替换有问题的硬件。
对 MySQL 进程的设置进行调优。
对查询进行优化。
迁移到 DB2
您正在寻找一种干净利落、无成本的方法用来从 MySQL 迁移到 IBM® DB2® 吗?“从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C
” 介绍了如何使用文中提供的迁移工具来简单地实现这种转换。可以 下载
免费的 DB2 Express-C 并开始体验。
替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。
第二种方法是对 MySQL 服务器(也称为 mysqld
)进行调优。对这个进程进行调优意味着适当地分配内存,并让 mysqld
了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。对 mysqld
进行调优是本文的重点。
最好的方法是确保查询已经进行了优化。这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL 功能的方式来编写的。尽管本文并没有包含查询调优方面的内容(很多著作中已经针对这个主题进行了探讨),不过它会配置 mysqld
来报告可能需要进行调优的查询。
虽然已经为这些任务指派了次序,但是仍然要注意硬件和 mysqld
的设置以利于适当地调优查询。机器速度慢也就罢了,我曾经见过速度很快的机器在运行设计良好的查询时由于负载过重而失败,因为 mysqld
被大量繁忙的工作所占用而不能服务查询。
回页首
记录慢速查询
在一个 SQL 服务器中,数据表都是保存在磁盘上的。索引为服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表。当必须要搜索整个表时,就称为表扫描
。通常来说,您可能只希望获得表中数据的一个子集,因此全表扫描会浪费大量的磁盘 I/O,因此也就会浪费大量时间。当必须对数据进行连接时,这个问题就更加复杂了,因为必须要对连接两端的多行数据进行比较。
当
然,表扫描并不总是会带来问题;有时读取整个表反而会比从中挑选出一部分数据更加有效(服务器进程中查询
相关文档:
10w以上数据的效率比普通分页 快4-5倍
PROCEDURE p_pageList (m_pageNo int , m_perPageCnt int , m_indexcolumn varchar(100), m_column varchar(1000) , m_table varchar(1000) , m_condition varchar(1000), m_orderBy varchar(200) , inout m_totalPageCnt int)
BEGIN
IF m_totalPageCnt >=1 THEN
S ......
1. 什么是参照完整性?
——————–
参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中的一个表与一个或多个表进行关联时都会涉及到参照完整性。比如下面这个例子:
文章分类表 - categories
category_id &n ......
由于项目需要,对mysql分布事务有一定要求.这里先简单说明必要.
假设,日常财务中,要完成一个拥护订购,必须将定单操作和财务操作封在一个事务中才能保证交易完整性.
如果定单和财务数据都分布在各自的实例中,则必须用分布事务才能满足.
废话不多,进入分布事务探索。
(本文例子来自网络,本文只注重探索)
1.在本机 loca ......
取mysql表和字段注释的语句
1、取字段注释
Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
from INFORMATION_SCHEMA.COLUMNS
Where table_name = 'companies'##表名
AND table_schema = 'testhuicard'##数据库名
AND column_name LIKE 'c_name'##字段名
2、取得表注释
Select tab ......
mysql 截取某一个时间(datetime类型)的日期:
方法1:select date(row_name) from table_name where row = row1;
方法2:select left(row_name, 10) from table_name where row = row1;
方法3:select cast(row_name as char[10]) from table_name where row = row1;
取得某个日期的time_t数值:select unix_times ......