本博客立志于收集各类儿童教育资料及技术信息,便于本人和广大网友及家长查询检索,无论公司或个人认为本站存在侵权内容均可与本站联系,任何此类反馈信息一经查明属实后,将立即删除!
   
  • 1 
预览模式: 普通 | 列表

MySQL加速动态网站之MySQL 索引分析和优化

  一、什么是索引?
  索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。
  
  假设我们创建了一个名为people的表:
  
  CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );
  
  然后,我们完全随机把1000个不同name值插入到people表。下图显示了people表所在数据文件的一小部分:
  
  可以看到,在数据文件中name列没有任何明确的次序。如果我们创建了name列的索引,MySQL将在索引中排序name列:

[阅读全文]

MySQLi vs MySQL

结论:mysqli_stmt > mysql_query > mysqli_query > mysqli_multi_query

Background
Between participating in a MySQLi group and telling others about PHP5's new MySQLi (MySQL improved) extension, there always seems to be a redundant (though valid) question, "Why?" Simple enough right? Maybe not, so I attempted to come up with some good benchmarks. Now note, just because of the pure nature of PHP extensions, this is easier and harder in some ways than doing let's say, "ATI X800 vs Nvidia 6800" type benchmarks.

With that said, I tried my best to keep the test scripts used identical down to the variables. There will obviously be some differences as conceptually some things are different between the two extensions.

[阅读全文]

好用的图形化MySQL管理工具--Navicat

我用了大半年了,觉得很好用,支持存储过程及视图,对于MySQL5.0版本使用有很大帮助,有什么问题,大家多交流。

Navicat
是一套超強的 MySQL 資料庫系統管理及開發工具。它不僅適合資深的專業研發者,同時適合新手輕鬆的學習。友善的圖形化使用介面,Navicat 可以讓您快速且簡易的建立、查詢、組織、存取,並在安全及方便的環境下共用資訊。

Navicat 支援多重 MySQL 伺服器的連線,同時可連接數個遠端及本地資料庫。你的遠端 MySQL 伺服器可以是在 LinuxUnixMac OS X Windows 平臺中執行。2001年開始,Navicat 已被下載超過 1,100,000 次;Navicat 可為本地或遠端 MySQL 系統管理員及研發人員在三種作業系統中作為最受歡迎的 MySQL 前後端圖形使用者介面 - Window, Mac OS XLinux

Navicat MySQL主要功能:

  • 逾時自動重新連接 SQL server
  • 資料及結構同步
  • 新查詢建立程式可從不同的資料庫建立查詢
  • 查詢參數
  • SQL 中控台
  • 檢視建立程式
  • 建立檢視、預存程序及觸發器
  • SSH 通道私密金鑰
  • 支援所有 MySQL 版本
  • SSH 通道
  • 外鍵
  • Unicode 及字元集支援
  • 編輯 Blob 欄位文字
  • 列印資料表結構
  • ODBC 匯入資料
  • 匯入∕匯出超過18種最常見的格式資料,包括 MS Access, MS Excel, XML, PDF TXT
  • 建立備份排程表、匯入∕匯出資料傳輸、儲存查詢及資料同步作業。
  • 以視覺化報告建立程式建立報告
  • 報告歸檔報告可存成一個壓縮檔 (.raf) 以便備份及往後增加
  • 從命令列建立報告歸檔

    attachments/month_200606/1151030606.gif

    Neo's Blog关于四款簡易型管理軟體評測 - Navicat (更加详细)    下载地址

标签: MySQL

MySQL语句优化的原则

1、使用索引来更快地遍历表。
缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
a.有大量重复值、且经常有范围查询( > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引;
b.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;
c.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。
2、在海量查询时尽量少用格式转换。
3、ORDER BY和GROPU BY使用ORDER BY和GROUP BY短语,任何一种索引都有助于SELECT的性能提高。
4、任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。
5、IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句中应该包含索引。
6、只要能满足你的需求,应尽可能使用更小的数据类型:例如使用MEDIUMINT代替INT


查看...
标签: MySQL
  • 1