MySql優化之二三事

2021-04-18 18:34:47 字數 2625 閱讀 7803

sql語句之優劣

better way

select @maxid :=max(nid) from node;

select * from node_revisions where nid = @maxid

better way (if either of nid and created is not index)

select * from node where nid > 10

union

select * from node where create > 1209793459

better way (using subquery is not a good choice in common)

select n.* from node n left join term_node t on t.nid = n.nid where tid < 10

group by之優化

select count(nid) from node group by vid order by null

explain:

| id | select_type | table|type| possible_keys| key | key_len   | ref  | rows | extra 

| 1 | ******  | node  | all  | null | null | null  | null |   23 | using temporary

create index之優化

when you create index on varchar or char column, partial index is better than all index, especially in large column:

create index name_index on users (name (10)); it will create index only the first 10 characters.

mysql server configuration

add configuration for mysql section

[mysqld]

skip-name-resolve  #don』t resolve hostnames

compile mysql on linuxconfig.mysql.sh

#!/bin/bash

exe=configure   

$exe --prefix=/opt/mysql --localstatedir=/opt/mysql/data --with-mysqld-user=mysql --sysconfdir=/opt/mysql/etc --with-unix-socket-path=/opt/mysql/temp/mysql.sock --with-tcp-port=3307 --with-charset=utf8 --with-extra-charsets=all --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --enable-assembler --enable-thread-safe-client --with-pthread --without-debug --without--isam #configure的相關引數: #--prefix=/home/mysql/ /指定安裝目錄 #--without-debug /去除debug模式 #--with-extra-charsets=gbk,gb2312,utf8 /新增gbk,gb2312,utf8中文字元支援 #--with-pthread /強制使用pthread庫(posix執行緒庫) #--enable-assembler /使用一些字元函式的彙編版本 #--enable-thread-safe-client /以執行緒方式編譯客戶端 #--with-client-ldflags=-all-static /以純靜態方式編譯客戶端 #--with-mysqld-ldflags=-all-static /以純靜態方式編譯服務端 #--without-isam /去掉isam表型別支援,現在很少用了,isam表是一種依賴平台的表 #--without-innodb /去掉innodb表支援,innodb是一種支援事務處理的表,適合企業級應用

problems in mysql

遠端無法訪問      1. mysql>grant all privileges on *.* to 'user'@'%' identified by "1234";

允許xoops_root使用者可以從任意機器上登入mysql。

$sudo gedit /etc/mysql/my.cnf

老的版本中

>skip-networking => # skip-networking

新的版本中

>bind-address=127.0.0.1 => bind-address= 你機器的ip

127.0.0.1知允許本地訪問

埠二三事

最近在看0 1024熟知埠所對應的內容,然後寫了指令碼對iana資料庫所提供的埠和服務對應的關係進行了歸類,發現如下的埠是值得注意的地方。就在處理0 1024埠的時候,出現的值得注意的地方列舉如下。總的來說,有些埠已經加入了對sctp以及dccp的支援。sctp和dccp可以看成分別是對tcp和ud...

今日二三事

上午早起去辦租賃備案,辦完了回來啟用了信用卡並稍微摸索了下,中午和室友一起訂烤魚和小龍蝦,吃完都十二點多,午睡未睡著看了一會漫畫和 去書房三點多,買了一杯咖啡,看看一些前端文章,狀態好的情況下還是可以看進去一些英文文件的。晚飯後繼續看,邊看邊跟老弟聊天,他最近要學python,我打算也學一學,順便帶...

生活二三事

今天遭遇了一系列的事情,這些事情用當前的我個人的認知來說算是衰事吧,乙個倒也見怪不怪,但今天的接憧而至的架勢的的確確給我挫折感。然後呢我不得不散了會步,按照平時的狀態我是極其不喜歡乙個人散步的,因為那樣會感覺很孤獨,畢竟大學校園三五成群,兩兩相依的情景隨處可見,總以別人的眼光來看待自己很是累,恩。路...