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).表的主索引應該盡可能的短.這樣的話每條紀錄都有名字標志且更高效.
新聞熱點
疑難解答